はじめに
Vue.jsを触り始めたので、よく使いそうなディレクティブを自分用にまとめました。
※HTML側の表記のみサンプルで記載しています。
環境
- OS: macOS Catalina 10.15.1
- Vue.js: 2.6.10
各ディレクティブの意味と使用例
1.v-bind
データバインディング
【意味】
データバインディングを作成する。
HTMLの各タグにJavaScriptのデータを紐付ける。
【使用例】
<av-bind:href="url">Click here</a>
<a:href="url">Click here</a>
短縮形が用意されていて、通常は下側の表記を使う。
その他、以下のタグと連携する活用例が多い。
href
src
id
class
checked
2.v-on
イベント発火
【意味】
HTMLタグに紐付け、イベント発火時に指定したJavaScriptを実行する。
【使用例】
<divid="example-1"><buttonv-on:click="counter += 1">Add 1</button><p>The button above has been clicked {{ counter }} times.</p></div>
例では、ボタンをクリックすると変数counter
に1加えられ、p
タグ内に反映される。
<divid="example-1"><button@click="counter += 1">Add 1</button><p>The button above has been clicked {{ counter }} times.</p></div>
短縮系が用意されていて、通常は@click
のように使用する。
その他活用の幅が広く、様々な修飾子が用意されている。
詳細は公式ドキュメント参照。
3.v-model
双方向データバインディング
【意味】
双方向データバインディングを作成する。
フォームなどと連携し、リアルタイムで値を反映させたいときに使用する。
【使用例】
<inputv-model="message"placeholder="edit me"><p>Message is: {{ message }}</p>
例では、input
タグで作成されたフォームに入力された文字がp
タグ内の{{message}}
にリアルタイムで表示される。
その他チェックボックス、セレクトボックスなどにも応用出来る。
4.v-if
条件分岐
【意味】
trueなら表示、falseなら表示されない。
【使用例】
<divv-if="hoge">
fuga
</div><divv-if="foo">
bar
</div>
例では
hoge
がtrue =>fuga
が表示foo
がtrue =>bar
が表示
また、もう少し複雑な処理であればv-else-if
v-else
も組み合わせて条件分岐させることが出来る。
5.v-show
表示/非表示
【意味】
v-if
と記法・使用用途は近い。
ただし、実態はCSSでdisplay: none
を付与して非表示にしているだけのでfalse
の場合も要素自体は存在する。
【使用例】※v-if
と同様
<divv-show="hoge">
fuga
</div><divv-show="foo">
bar
</div>
例では
hoge
がtrue =>fuga
が表示foo
がtrue =>bar
が表示
6.v-for
繰り返し処理
【意味】
配列の要素を1つずつ取り出し、取り出す要素が無くなるまで繰り返す。
【使用例】
<ulid="example-1"><liv-for="item in items">
{{ item.message }}
</li></ul>
この例では、個数分だけli
タグが繰り返し表示される。
vfor
の後にあるitem in items
の意味は
item
=> htmlにある{{item.message}}
の中にあるitem
items
=> JavaScriptのdata
に入っているitems
配列
表やリストに対して使用する例が多い。
おわりに
最後まで読んで頂きありがとうございました
これからガンガン使って慣れていきます!