LoginSignup
26
6

More than 1 year has passed since last update.

【Vue.js】主要なディレクティブ一覧

Last updated at Posted at 2022-06-28

ディレクティブとは

Vue.jsでは、HTMLに対して独自の属性を追加することでDOM操作を行うことができます。

この独自の属性のことをディレクティブと呼んでいます。

ディレクティブ名は全てv-から始まります。

主要なディレクティブ

v-ifとv-show

要素の表示と非表示を切り替えたい場合、v-ifもしくはv-showを使います。

どちらも属性値が真の場合は要素を表示し、偽の場合は非表示にします。

<p v-if=”値”>
</p>
<p v-show=”値”>
</p>

どちらも表示と非表示を切り替えることができますが、その実現方法が異なります。

属性値の判定結果に応じて、v-ifはDOM要素の追加と削除、v-showはdisplayプロパティの値の変更によって実現しています。

一般的にスタイルの変更よりもDOM要素の操作のほうがレンダリングコストが高くなります。

そのため属性値の判定結果が頻繁に変わる場合はv-show、ほぼ変わらない場合はv-if、というように使い分けます。

v-for

v-forで、配列もしくはオブジェクトのデータをリストレンダリングできます。

属性値は変数名 in 配列という構文が使われます。

<li v-for="変数名 in 配列">
</li>

配列のindexが必要な場合、(変数名, index) in 配列と記述できます。

v-on

v-onはchangeやinputなどのイベントが起きた時に、属性値の式を実行します。

DOM APIのaddEventListenerのようなものです。

<input v-on:イベント名=”実行したい式”>

v-onはよく使われるため、以下のように省略して記述できます。

v-on:change → @change

v-model

v-modelは双方向データバインディングを実現するディレクティブです。

DOMで変更があった時、その値をVueインスタンスのデータとして更新します。

逆にVueインスタンスのデータに変更があった時、DOMを更新します。

<input v-model=”値”>

v-modelを使用できるのは、inputタグ、selectタグ、textareaタグです。

ユーザーが入力した内容を、値として保持できるようになります。

v-bind

v-bindはHTML要素の属性に、特定のデータを渡す際に利用できます。(データバインディング)

<p v-bind:属性名=”値”>
</p>

例えばclass属性をバインディングして、特定の条件の時にclassを付与する、といった使い方ができます。

v-on同様、よく使われるため以下のように省略して記述できます。

v-bind:class → :class

終わりに

本記事で紹介したディレクティブの使用例を作成しました。

参考文献

26
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
6