2019/06/19
Vue.js(ビュージェイエス)はEvan You氏の個人プロジェクトとしてはじまり、2014年にリリースされた比較的新しい JavaScript のフレームワークです。
2015年には、「Laravel」 のフロントエンドエンジンとして採用され知名度が上がりました。
(※laravel5.4以降から Vue.js がバンドルされています)
Laravel のプロジェクト直下に Package.json
があるので npm install
するだけで Vue.js の開発に必要な環境が整います。
そんなわけで「Laravel」でWebサイトを制作しているプログラマーは「Vue.js」を使う人が多いです。
今回は Vue.js に関してのエントリーです。
用語の解説
マウント
アプリケーションを画面に表示するため、まずはどの要素に配置するかを決めます。
#app
のというセレクタの要素を使用しました。
配置する場所はbody
内ならどこでも自由です。
配置する要素とアプリケーションを紐づけることを mount (マウント)と呼びます。
データバインディング
jQuery は基本的にDOMを直接操作していくような実装をします。
それに対してデータバインディングでは、DOMがデータ(モデル)に紐づけられていて、データが更新されるとそれに同期してDOMも更新されます。
Vue.js ではデータバインディングに関する多くの機能を持っています。
また、ディレクティブによってHTMLを扱うときと同じ感覚でそれらの機能を使用することができます。
ディレクティブ
Vue.js ではv-if
や v-bind
といった見慣れない属性が登場します。
それぞれ特別な役割を持った属性ですが、特に名前が「v-」から始まっている属性(接頭辞)は「ディレクティブ」と呼びます。
主にデータバインディングを行うために使用されます。
記述式
Vue.js の導入
その1)CDN
Vue.js は CDN で読み込むことができます。
</body>
の前に置きます。
その2)npm
npm でインストールするときはシェル(macならターミナル、windowsならコマンドライン)で下記のコマンドでインストールします。
Vue インスタンスの作成
Vue インスタンスとは「new Vue」にて作成したオブジェクトのことです。
全ての Vue アプリケーションは、 新しい Vue インスタンスを作成することによって起動されます。
返り値はルートのインスタンスになっています。
変数化しておくことでコンソールからアクセスできますが、必須ではありません。
変数名は慣例的にapp
や vm
(ViewModelの略)といった変数名が使用されます。
JavaScript で定義したテキストを HTML に表示させる
例)Hello World の表示
HTML
JavaScript
DOM とは HTML のドキュメントにアクセスするための API のことです。
Vue.js で言えば、elオプションで指定した要素のことです。
HTML
実際の描画は以下のようになります。
JSFiddle
オプションの構成
基本的なオプションの構成
el (マウントする要素)
el
はアプリケーションを紐づける要素のセレクタです。
data (データ)
data
はアプリケーションで使用するデータです。
オブジェクトや配列も登録できます。
computed (算出プロパティ)
computed
は、data
と似たように扱うことのできる、関数によって算出されたデータです。
このデータは「算出プロパティ」とも呼ばれます。
created (ライフサイクルフック)
Vue インスタンスは生成時に初期化を行います。特定のタイミングでコードを実行したいときは ライフサイクルフック という関数を使います。
created
createフックはインスタンスが生成されたあとにコードが実行されます。
例)インスタンスが生成されたあとに alert を出す
ライフサイクルフックは他にも mouted
、updated
、destroyed
があります。
methods (メソッド)
methods
は、このアプリケーションで使用するメソッドです。
コードを管理しやすくするために処理をわけたり、イベントハンドラなど細かな実装を担当します。
Vue.js における用語・文の構成に関しては以上になります。
基礎から学ぶ Vue.js
僕は基本的にネットで勉強しているのですが、最終的に知識を整理するために、この本を手にとって知識を整理しました。表紙のVロゴより目立っている「ねこちゃん」は本文中でもよく登場します。一部では猫本と呼ばれているそうですね。中もカラフルで図表も多く、とても読みやすかったです。当サイトではVue.jsの解説を端折っているのでわかりずらいところがあるかもしれません。そういう方はこの本を読めば理解できるかと思います。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。