データを1度だけバインドするv-onceディレクティブ [Vue.js]

Vue.js The Progressive JavaScript Framework

ここでは、Vue.jsのv-onceディレクティブについて紹介します。

v-onceディレクティブ

Vue.jsのv-onceディレクティブを利用することで、ディレクティブを指定した要素またはコンポーネントを1回だけ描画(レンダリング)することができます。
初回に描画された後は再描画されることはなく、要素またはコンポーネントとそのすべての子は静的コンテンツとして扱われスキップされます。

要素のコンテンツが初期値(デフォルト)から変更されないことが分かっている場合は、v-onceディレクティブを利用することで、ページ更新のパフォーマンス(性能)を最適化することができます。

v-onceディレクティブの使用例

以下のv-onceディレクティブの使用例を示します。

HTML

JavaScript

上記の例では、dataオプションに定義したtextプロパティをv-onceディレクティブを指定したdiv要素と、指定していないdiv要素に表示しています。textプロパティは画面上で変更できるようにinput要素(テキストボックス)にv-modelディレクティブでバインドし、画面上で変更した結果、v-onceディレクティブの指定有無で再描画が行われるかどうかを検証できるようにしています。

テキストボックスの値を変更すると、v-onceディレクティブを指定したdiv要素のテキストは「初期値」と表示されたままなのに対して、v-onceディレクティブを指定していないdiv要素のテキストは、テキストボックスの値で描画されることが確認できます。

v-onceディレクティブでの出力結果

Vue.js 入門 Tips 一覧