LoginSignup
0
0

More than 1 year has passed since last update.

【Vue.js】v-ifとv-showを使いこなそう

Last updated at Posted at 2021-05-09

はじめに

v-ifとv-showの違いと使い分けについて学習したので、
その内容を自分の備忘録もかねて整理して記事にします。

v-ifとv-showについて

v-if,v-showについてそれぞれ簡単に説明します。

どちらも特定の要素を条件に応じて描画したい場合に使用され、
ディレクティブの式が真を返す場合のみに描画されます。

※ディレクティブ
 Vue.jsでは、標準のHTMLに対して独自の属性を追加することで、
 属性値の式に変化に応じてDOM操作を行います。
 この特別な属性のことをディレクティブと呼び、
 属性名にはデフォルトで「v-」という接頭辞がつきます。

v-ifとv-showの違い

さて、ここから本題です。
これらの違いは大きく分けて2つあります。

  1. v-ifは要素の描画コントロールをJavaScriptで行うが、 v-showはJavaScriptでなく、cssのdisplayプロパティで行う
  2. v-ifはv-elseやv-else-ifのような分岐処理を使用することができるが、 v-showはできない

v-ifとv-showの使い分け

では、前述の違いを踏まえてこれらをどう使い分けていくか。
違い②で説明したようにv-showは複数の分岐処理は使えないので、
そのような実装をしたい場合はv-if一択でしょう。

ここでは違い①に焦点を当てます。

要素の描画コントロールについて、
v-ifはJavaScriptで式の結果に応じてDOM要素を追加または削除するのに対して、
v-showはスタイルの操作、つまりdisplayプロパティの値を変更することで実現します。

一般的にスタイルの操作よりもDOM操作の方がレンダリングコストが高く、
この観点から「切り替えの頻度が高い場合」はv-showの使用が推奨されます。

参考資料

・Vue.js公式ドキュメント
 https://jp.vuejs.org/v2/guide/conditional.html
・書籍「Vue.js入門 基礎から実践アプリケーション開発まで」
・書籍「たった1日で基本が身に付く! Vue.js 超入門」

0
0
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
0
0