Vue.js
TypeScriptつうよりVue.jsだが、
- Vueインスタンス: new Vueで生成したオブジェクト
- オプションオブジェクト: new Vueに渡す引数
- 広義のVueインスタンス: コンポネントなども含む。ツリー状に配置される。
- ルートVueインスタンス: 広義のVueインスタンスのツリー構造におけるルート、狭義のVueインスタンス。
- リアクティブシステム: 互いに変更を伝え合う一連のモノ達、くらいかな?
- dataオブジェクト: Vueインスタンスのオプションオブジェクトのdataプロパティとして与えられるオブジェクト。dataオブジェクトのプロパティはすべてリアクティブになる(=リアクティブシステムに登録される)。
- ビュー: 実質的にはHTML要素(であるオブジェクト)のことだと思わる。
- 反応: リアクティブシステムに登録されたモノが変化すると、関連付けられた他のモノも変化する。典型的には、dataオブジェクトのプロパテが変化すると、対応するビュー・オブジェクトの内容や属性が変化する。内容/属性は、要素オブジェクトの部分。Ark2のコネクターのようなものがあるのだろう。
- ライフサイクルフック: オブジェクトのライフサイクルで起きる典型的事象(ハプニング)に対するイベントハンドラ。フックは、アロー関数では書けない、thisが違うオブジェクトを指してしまう。
- データバインディング: バッチ方式テンプレートでは、プレースホルダーは展開されて固定されて終わるが、データバインディングでは、データ(のプロパティ)とプレースホルダーがリンクあるいはコネクトされる。
- マスタッシュ構文: テンプレート構文の有名なやつ。
- ディレクティブ: 'v-'から始まる属性。マスタッシュ構文と共に、テンプレートを制御する。Smartyなどとは構文思想が違う。いわゆる「HTML非破壊なテンプレート構文」。ディレクティブは名前と式をパラメータに取る。v-bind:id="..." なら、idが名前で"..."が式。
- 修飾子:ディレクティブに対するパラメータ渡しの方法のひとつ。名前パラメータの後にドット区切りでさらに名前を続ける。
- 算出プロパティ: データバインディングのデータ側のgetter関数によるプロパティのこと。getterが毎度呼ばれるわけではなくてキャッシュされる。算出プロパティにsetterも指定できて、setter/getterをうまく使っている。良いアイデアだ。
注意:
- Vueインスタンスのdataオブジェクト(オプションオブジェクトの一部)のプロパティはリアクティブ変数となるが、それはVueインスタンスの初期化時に登録されるので、後から来たプロパティはリアクティブではない。
- オプションオブジェクトのプロパティは、Vueインスタンスのプロパティにセットされるが、それはドルマーク付きのプロパティやメソッドで参照できる。例: vm.$elで監視対象のHTML要素。
- コンポネントはツリー構造で、vm.$parent, vm.$children, vm.$rootでツリー構造を知ることができる。
- オプションオブジェクトのdataオブジェクトのプロパティは、そのVueインスタンスのトップレベルに持ってこられる。
- VueはAjax部分は持ってない。適当に小さなライブラリを選ぶ。
webpackとの関係