Vue.js は、公式ページにおいて

> Vue はユーザーインターフェイスを構築するためのプログレッシブフレームワークです。

と説明されている通り、ユーザインタフェース – HTML(DOM) とその上で制御することに特化したフレームワークです。
提供される機能がユーザインタフェース周りに限定されているため、非常に「軽い」ところが気に入っています。

Vue の中心となるのが Vue オブジェクトです。
これは、ビュー(view)のデータをモデル化したオブジェクトです。オブジェクトですから、データと振る舞いを持ちます。

これは、「増やす」ボタンをクリックすると、隣にある数字をインクリメントするアプリケーションです。

HTML は非常にシンプルで、id 属性が “app” の div の中に、button が1つあり、その隣に {{ count }} という見慣れない記述があります。

JavaScript のコードでは、Vue オブジェクトを生成しています。このとき、オプション el に、ひもづける要素を指定します。el:’#app’ なので、HTML で記述した div タグを指していることになります。

他にも data と methods という2つのオプションがあります。この2つのオプションこそが、オブジェクトのデータと振る舞いです。

Vue では、いくつか特殊な記法を用いることになります。

  • @~ イベントをハンドリングします。@click=”…” と書けば、クリックしたときの処理(JavaScript)を記述することができます。また、オブジェクトのメソッドを指定することができます。@click=”inc” であれば、クリックされたときに inc メソッドを呼び出すということになります。
  • {{ ~ }} オブジェクトのデータを表示します。{{ count }} であれば、オブジェクトの count の値が表示されます。
  • v-model, v-for などの特殊な属性 別記事にて説明

inc メソッドがいかにも**オブジェクト的な**処理になっていることがおわかりいただけるかと思います。inc メソッド内では、その count をどこに表示するかとか、何がきっかけに呼ばれているのかだとかを意識せず、単に自分のデータである count をインクリメントしています。

ポイント:

  • Vue は Vue オブジェクトが中心となり、それは HTML の任意の要素と結びつく
  • データを表示するときは {{ ~ }} を使う
  • イベントをハンドリングするときは @~ を使う