蚊帳の中の日記

ゆるく生きてます

Vueチュートリアル 2日目

今日はイベントハンドリングコンポネントの基本まで行きました。

https://jp.vuejs.org/v2/guide/events.html

  • イベントハンドリングはv-onディレクティブ
  • v-on:click='hoge'みたいにかける。hogeの部分はメソッドでもいい。ちょっとした実行分も書けるけど冗長になるので基本的にメソッドに切り出すのが無難だと思う。
  • $eventでDOMイベントを取れる。
  • イベント修飾子なるものが、非常に便利そうな匂いを醸し出しているけれど、まだよくわかっていない。あとイベント修飾子passiveがまだよくわかっていない。
  • キー修飾子もある。
  • HTMLにこういうリスナを書くことはHTMLのテンプレートを眺めていれば「どういったイベントが発生するのか」わかりやすくなるという主張はなんとなく納得できた。

https://jp.vuejs.org/v2/guide/forms.html

  • inputやtextareaみたいな入力内容のバインディングv-modelでできる。(勝手にv-inputとかが良いじゃないのか?なんでもmodelなんだ?と思ったけど、もっと勉強すればわかってくるのかな?)
  • textarea以外に、checkbox, selectboxなどにも使えて、valueバインディングすることもできる。
  • 修飾子.lazyは使えそう。
  • あと地味に修飾子numbertrimは、入力内容の余計な情報のトリミングに非常に役立ちそうな予感がした。

https://jp.vuejs.org/v2/guide/components.html

  • componentの基本として、componentは名前付きの再利用可能なvueのインスタンスだということ。なので、hogeってcomponentを作って、一つのHTMLにhogeタグを3つ作ってもそれぞれ独立したインスタンスだということ。これは重要なことだと思う。そのhogeがなにかミュータブルな値を保持するコンポーネントだとして、インスタンスが別なので値を共有することはないということになる。
  • dataには関数でなければいけない
Vue.componet('hoge', {
  data: function () {
    return {
      count: 0
    }
  }  
})

dataオプションの中は関数でないといけない。

  • componentは利用に当たりグローバルで登録するのと、ローカルで登録するの2種類がある。いままでの書き方はすべてグローバルな登録。
  • componentはツリー構造になっている。
  • 子のコンポネントに値を受け渡したいときはpropオプションを利用する。
  • 単一ルート要素???
  • イベントとメッセージは親のコンポネントに送ることができる。使いみちがぱっと思い浮かばなかったけど、リストをいっぺんに変更するとかそういう場面で使えそう。
  • 親コンポネントにイベントを送出する場合は$emitメソッドがいいらしい。
  • componentでv-modelの使い方
  • 動的コンポネント
  • tableの中で使うtrみたいな特殊なケースで使われるタグ内でcomponentを使う場合はisを使う。
<table>
  <tr is="blog-post-row"></tr>
</table>

こういったケースが関連しているのが、文字列テンプレート、単一ファイルコンポーネント、scriptタグ。。。。らしい。よくわかってない。


ここまでできたので、Todoアプリでも作りたい所存。