Vueコンポーネントの基本

今日は、Vue.js公式の 「Vueコンポーネントの基本」を読んでみました。 コンポーネントの基本 コンポーネントの基本 例えば、下図のTwitterのいいねボタン。 大きさはとても小さいですが、このボタンには、色々な情報が詰め込まれています。 パッと思いつく感じでも。 カーソルが触れると赤くひかる 押されると、カウントが1増える もう一度押されるとカウントが1減る ハートマークのアイコン マウスオーバーエフェクトが動作する。 などです。 これらの情報は、「最小単位のコンポーネントが持っておくべき。」というのが基本的な考え方です。 参考:Atomic Design を 分かったつもりになる ボタンコンポーネントを作ってみる Vueにおいて、コンポーネントを作ることは簡単です。 オブジェクト志向言語に馴染みがある人は、コンポーネントはクラスのような物だと言われるとピントくるかもしれません。

data要素を関数にしないと、コンポーネントが独立した存在ではなくなってしまいます。 上記のコードでは、button-counter`という名前のコンポーネントを作成し、`#components-demoにマウントしています。 マウント先のHTMLはこんな感じ。

インスタンス化したコンポーネントは何度でも使い回すことができ、それぞれのコンポーネントは完全に独立しています。 親要素から子要素への値の受け渡し 以下の図のようにするとpropを使ったデータの受け渡しをすることができます。 子コンポーネントに汎用性を持たせるために、具体的なデータを入れたくない場合は、上図のように、コンポーネントを分けると、コンポーネントの使い回しが容易になるかと思います。

最速でVue.jsの学習環境を作る

はじめに  自分はこれまでフロントエンドをほとんど触ったことがありませんでした。どのくらいフロントエンドに触れてなかったかというと、フロントエンドで処理が必要なときは、C#のRazor文ですましてしまったり、もう少し複雑な処理の時は、JQueryを使っていました。  趣味レベルであればこれでも良かったのですが、仕事でVueを使うことになり、3日ほど前から本格的に学習を初めてみました。  ようやっと自分の中で「この学習環境が一番始めやすいんじゃないか」というものができたので、備忘録を残していこうと思います。 jsfiddle jsfiddleはブラウザ上で、HTML・JavaScript・CSSを実装できるサービスです。 リンク:jsfiddle jsfiddleでアカウントを作成することで、インターネット上にソースコードを保存しておくことも可能です。 自分はこの環境でVue.jsのチュートリアルをやりました。 jsfiddleの使い方とかは説明するまでもないかと思うので、使い方とかは、書きません。というか、RunとSaveボタンしか押したことないので、説明とかできません。笑 Vueでfor文、if文  Vueには、色々な機能があるのですが、プログラマー が一番最初に書き方を知りたいのが、この二つかと思います。 ここでは、「Reverse」ボタンを押すと、「Now you see me」という文字が表示されるというプログラムをif文を使って実装しています。 Vueでは、v-ifディレクティブと呼ばれる要素をタグの中に入れることで、if文を実装することができます。 ちなみに、for文はv-forと書きます。 上図のプログラムは、Vueインスタンスの一例です。 赤四角の部分で、Vueインスタンスがマウントする要素を指定します。 青四角部でVueインスタンスのデータを保持し、黄色部分で、メソッドを持つことができます。 公式チュートリアルにて、 算出プロパティとメソッドの比較や 算出プロパティと監視プロパティ など、より理解を深められるような解説があります。 公式:算出プロパティとウォッチャ 今後 他にも、Vueには様々なディレクティブがあったり、イベントハンドラがあったり 効率よく開発するためのデザインパターンとしてAtomic Designであったり、コンポーネント思考などまだまだ学ばなければいけないことはたくさんあります。 この辺りの理解が深まってきたら、また記事を更新していこうと思います。 コピペ用ソースコード html

Vueインスタンス

MS Learnをやってみた(Select a cloud deployment model編)

今回はMS Learnをやってみた感想を書いていきます。 MS Learn : Select a cloud deployment model ↑皆さんもぜひやってみてください。 はじめに 本日は、無料でMicrosoftのサービスについて学べるMS Learnというサービスを試してみました。 今回やるのは「Select a cloud deployment model」という題目です。 このラーニングパスで学べることは The considerations to keep in mind when selecting a cloud service. クラウドサービスを選ぶときの考え方 Terminology associated with adopting a cloud service. クラウドサービスを採用するときの用語 The difference between cloud-only and hybrid migration models and how to choose between them. ハイブリッドモデルとクラウドのみのモデルの違い…

.NET Core 3.0 MVCで作成したプロジェクトが起動しない

プロジェクトを作成した直後のデフォルトの状態で、エラーが起きた時の備忘録 状況① Visual Studio for MAC バージョン8.3 .NET Core3.0 MVC (プロジェクトの作成直後) 2019年11月28日時点 ふと、C#でプログラムを書いてみたくなり、.NET Core 3.0 プロジェクトを新規作成し、GUIでビルドすると、起動するはずのブラウザが起動しなかった。 .csprojファイルをいじったりと無駄な努力をしてみたが、結局解決せず。 dotnet コマンドでビルドを行い、ログから開いているポート番号を確認した。 localhost:5000 にアクセスし、アプリが起動していることを確認できた。 どのポートを開くかは、launch.jsonで設定できるっぽい

状況② プロジェクト作成後のデフォルト時に怒る時のエラーです。 <code>dotnet run</code>の後に証明書がないというエラーが出る。

.NET Coreプロジェクトの作成時にHTTPS/HSTS をオプトアウトする必要があります。 プロジェクト作成時の HTTPS/HSTS のオプトアウト

Azure PipelinesでBuidからDeployまで(node.js)

Azure Pipelinesを理解するにはとにかく色々とパイプに通すしかない! ということで、今回はnode.jsを通してみました。 業務にて、Docker imageをCIでプッシュする必要があったのですが、コンテナって何?って状態だったので、今回は実体のあるアプリケーションで、CI/CDを試してみました。 AzureのGUIは本当によくできていて、複雑なことをしようとしなければ、ほぼ直感で操作が出来るとチュートリアルをやりながら実感しました。 とはいえ、Azureを触る機会がない人に取っては、認知負荷がかなり大きいかと思うので、この記事を流し読みしてから、MSのチュートリアルをやってみるのもいいかもしれません。 それでは、やっていきます。 プログラムをローカルに持ってくる。

サンプルコードは、上記のリポジトリにあるので、取ってきましょう。 Azure DevOps 無料枠を使ってみた 例にならって、DevOpsにリポジトリをプッシュしておきます。 Azure Gitにリポジトリが作成されたら作業開始です。 Azure Gitのプログラムを Build する DevOpsでは、指定したブランチにコミットされるたびに、ビルドしてくれるAzure Pipelinesというツールがあるのですが、これを使ってみます。 コードのある場所(ここではAzure Git) コードのあるプロジェクト名 YAMLのテンプレート(種類が色々ありますが、それっぽいので大丈夫です。あとでいくらでも書き換えられます。) 最後に自動生成されたYAMLファイルをチェックして保存→実行しましょう。

生成されたファイルはこんな感じ。 上の塊から。 トリガー。ここではmasterブランチに変更がかかるたびにビルドが実行されるというトリガー ビルドを実行するための、クラウド上に存在するVM ビルド時にやりたい処理 コンソールに出力するログを出す 必要なnpmコマンドを実行してnodeの環境を整える こんな感じ、最初はYAMLファイルの書き方が分からなかったけど、結構適当でも大丈夫そう。大事なのは処理の順番。 変な空白とか入ってるとそれだけでエラーになるからそこだけ気をつけて、あとはトライ&エラーを繰り返すのみ。 ここのビルドはテンプレートのまんまで大体通ります。 Releaseしてみる こっからがCIへの第一歩。 デプロイを自動化していきます。 ここから先、GUIで操作するので操作に迷うことはほぼないと思うのですが、もし、作ったはずのリソースグループがドロップダウンに出てこない、サブスクリプションが表示されないとかの問題あれば、Service Connectionに原因があるかもしれません 公式ドキュメント 最初にRelease Pipelineを作成していきます。 Releaseのタブを選択し、Crateしたらまずステージングから設定していきます。 Deploy a node という選択肢があるのでこれを選んでみます。 左のArtifactも適当にBuildを選択し Create Releaseをしてみます。…

Azure Pipelineを使ってみた

今日は、Azure Pipelineに焦点を当てて記事を書いていきたいと思います。 まず、Azure Pipelinesが何かと言いますと公式ドキュメントにあるように Azure Pipelines is a cloud service that you can use to automatically build and test your code project and make it available to other users. It works with just about any language or project type. Azure Pipelines combines continuous integration (CI) and continuous delivery (CD) to constantly and consistently test and…

Docker で JupyterLab環境を構築してみた。

参考サイト Dockerfile, docker-compose.ymlの引用元 DockerでJupyterLabを構築する コンテナの外部からアクセスする方法 コンテナに外部からアクセス(ポートフォワード) はじめに JupyterLab環境をAzure上に用意して、どこからでもデータ分析できるようにしたら面白そうだなと思い、コンテナにJuyterLabを入れる検証を行いました。 コンテナ起動まで まず、Dockerfileとdocker-compose.ymlを用意します。

Dockerfile

DockerHubからjupyter/datascience-notebookをプルして、pipでJupyterlabを入れているだけ 次に、docker-compose.yml

フォルダマウントの参考サイト:Docker-docs-ja – Compose ファイル・リファレンス 80番ポートを開けておき、コンテナが起動した時に、jupyter labコマンドが入力されるように設定します。 これで全ての準備が整ったのでイメージを作成からコンテナ起動まで一気に行きます。

ここでコンソールに出てくるtokenというやつがJupyterLabにログインする時のパスワードになります。 127.0.0.1:80からアクセスできることが確認できました。 コンテナを止める時は以下のコマンドで

コンテナの運用 コンテナを運用していく上でのメモを追記していきます。 ライブラリの管理 開発環境はコンテナの中で閉じているため、僕の場合はライブラリの管理もコンテナ内はホストPCの環境と別で行ています。 JupyterLabだとシェルも開けるので便利。

pyenv について

【GitHub】:Simple Python Version Management: pyenv はじめに pyenvはPythonのバージョン管理と切替を容易にするツールであり。UNIXの思想(single-purpose tools that do one thing well)にしたがって作られています。 How to use pyenvは高いレベルにおいて、Pathに実行可能ファイルを注入し、割り込みをします。これによって、複数のPythonバージョンの中から、アプリケーションに対して適切なバージョンのみを実行させることができます。 Understanding Path Pythonコマンドやpipコマンドを打つとOSがディレクトリ のリストを探索し、実行可能なファイル名を見つけます。このディレクトリ のリストのことを環境変数と呼びます。 ディレクトリ リストは、コロンによって分けられています。

上記の環境変数の場合は、左から順に探索されるため、/usr/local/binが探索結果になります。 Under standing Shims pyenvはPATH(環境変数)の前にShimディレクトリ を挟むことで動作します。

redhaningと呼ばれるプロセスを通して、pyenvはディレクトリ 内のShimsを維持することで、全てのバージョンごとにpython, pipコマンドなどが動作するようになっています。 Shimsは軽量で、以下のようなシンプルな行程で処理を行います。インストール後に、pipコマンドを入力すると、 実行可能なpipというファイルを環境変数の中から探します。 pipという名前のShimsを見つけます。 pipという名前のShimを実行します。 Choosing the Python Version Shimを実行した時に、pyenvはどのPythonバージョンを実行するのかを以下のソースから決定します。 PYENV_VERSION`環境変数。`pyenv shellコマンドで、現在のShellセッションに環境変数を設定することができます。 アプリケーションで特定のバージョンを使いたい時は、カレントディレクトリにある.python-version`を`pyenv localコマンドで修正することができます。 ルートディレクトリ に行くまでの間に、最初に見つかった、.python-versionファイルが適用されます。 $(pyenv root)/version`グローバルな環境変数は、`pyenv globalで修正することができます。pyenv globalはsystemを使うことを推奨しています。 NOTE…

pythonからC#で書いたプログラムを呼び出す環境を作成する

pythonnetが動く環境を構築 最終的にやりたいこと 【Qiita】Pythonから.NETを呼び出す方法とついでにその逆も まず pip install が上手くいかない C#でSeleniumを制御するプログラムを書いて、それをPythonで制御する環境を作りたいと思い、 【Git Hub】github.com/pythonnet/pythonnet をPCに導入しようとしたのですが、

というエラーから抜け出せなかったのでその時の備忘録。 Pythonのバーションを変えたり、足りていななさそうなパッケージを足したり色々試しても解決せず、最終的に完成したDocker imageをpullすることにしました。 Docker で解決 Docker のいいところは、環境に依存しないというところ。 ということで、Macに pythonnet を直入れするのではなく、pythonnetパッケージがDocker imageにJupyter notebookを入れる方向に方針転換。 イメージの作成からコンテナ起動まで 【Docker Hub】pythonnetが入っているDocker image python3系がいいので

でイメージをpullし

docker imageを確認し、コンテナを作成します。 RUNする時に、ブラウザからJupyter notebookを開きたいので、8001ポートを開けておきます。 Docker上でJupyter notebookを動かす コンテナが起動したら、

でコンテナの中に入ります。コンテナの中に入ってしまえば、あとはpipコマンドが使えるので楽勝

で jupyter を起動します。 Jupyter起動時にポートを開けて外からアクセスできるようにする必要があります。 8001番ポートが空いているので、このポートからアクセスすれば、Jupyterが使えるようになります。 「clr」がインポートできれば、PythonからC#のプログラムを読み込む準備ができました。 参考サイト 参考:dockerでjupyter notebookが動く環境を付け加える作業

Azure CLIとAzure PowerShell、どっち使う問題

4日間、Azureチュートリアルを迷走して、一番困ったのが、Azure CLIが何なのか分からなかったという点でした。 4日間、迷走した僕の結論としては、Azure PowerShellとAzure CLIのどちらを使うか迷っているということであれば、Azure CLI一択ということです。 その理由としては以下の通り。 チュートリアルのほとんどがAzure CLIコマンドで書かれている。 Azure CLI はBash向けに開発されているので、Bashが入ってさえいればどの環境でも同じコマンドで操作ができる。 コマンドがazから始まるので、ドキュメントを読んでいて、どのコマンドがAzure CLIなのかが分かりやすい。個人的にはコマンドを調べる時にも調べやすいと感じた。 最初、ローカルなBashとAzure上のBash(Azure CLI)の違いが分からず、ドキュメントを読む以前の問題だったた。この時に、Azure CLIさえ入れておけば大丈夫と知っていたら、作業を何時間短縮できたか… ということで、AzureコマンドラインはAzure CLI一択という結論に至りました。 Azure PowerShellは機能をモジュール単位で提供しているため、使いこなすのが大変そうという印象があったことも、Azure PowerShellを敬遠した一つの理由です。 それでは、良いAzureライフを!! Azure コマンド ライン インターフェイス (CLI)