《Vue.js》v-ifとv-showの違いとは?わかりやすく説明します

Vue.js

v-ifとv-showの役割

条件によってhtmlを画面に表示する

v-ifもv-showも条件のtrue/falseによってhtmlを画面に表示します。

awesomeがtrueなら表示、falseなら非表示になります。両者ともこの点で共通の機能です。

v-ifとv-showの違い

DOMを削除するか、維持するか

両者の違いは非表示にする際に「DOMを削除する」「DOMを維持する」の違いです。

v-if

DOMを削除

v-show

DOMは維持

v-ifの場合、表示が切り替える為に、DOMを消したり、追加したりします。一方、v-showはDOMはそのままでcssの「display:none」を付けるかどうかで表示を切り替えます。

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

画面の切り替えコストが異なる

結論からいうと画面の表示/非表示において、ブラウザにかかる負荷は以下のようになります。

コスト

v-if

v-show

v-ifは表示/非表示を切り替えるにあたって、DOMを毎度「生成/削除」するので、ブラウザに掛かる負荷が高くなります。一方、v-showはcssで表示/非表示を切り替えているだけなのでv-ifよりも負荷が低いです。

v-ifは遅延描画

v-ifは遅延描画といって、条件文がtrueになるまでDOMは生成されません。なので非同期処理などを噛ませると画面の一番初めのレンダリング負荷が分散され、結果的に読み込みが速くなったりする場合もあります。それに対して、v-showは初期レンダリング描画されます。

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

何回も表示/非表示を切り替える処理が求められる場合は、DOMの追加/削除を行わないv-showを使うべきです。それ以外の場合はv-ifがいいでしょう。

場面

v-if

単発の切り替えがメイン

v-show

表示/非表示の切替回数が多い

番外:その他おすすめの記事

エンジニアがもっと楽しく仕事できるようにスキルアップの方法や役立つ情報を発信しています。興味がある方はご覧になってください。読者の皆様にとって損になるようなことはないと思います。使ってない方は是非使ってみてください!

おすすめアイテム①

自分はオフィス次の2点の座布団と背もたれクッションを利用してます。姿勢が安定し、お尻への負担が激減します。オフィスにいるのに自宅で作業しているような感覚になるので気に入ってます。また疲労感もかなり減るので費用対効果が非常に高いアイテムだと思ってます!

おすすめアイテム②

ブックスタンドみなさん使ってますか?PCを打ちながら参考書見る時に手で抑える必要がなくなるので非常に便利です。自分も購入した時なんでいままで使ってなかたんだろうと後悔したのでまだ持ってない方は買っておくと作業効率があがりますよ!

エンジニアの基礎知識・教養

別の記事でエンジニアとして知っておくべき技術本についてまとめました。スキルの高いエンジニアは極々当たり前にしっている知識だとおもいますが、そうでない方、エンジニアのスキルに不安があるかたに是非読んで欲しい技術本をまとめました。そのなかで例を1つあげるならば「リーダブルコード」などが挙げられます。優秀なエンジニアの先輩でこの本を読んでいない方はほぼいないと思います。エンジニアのスキルを上げるために、ある程度読むべき本というものが決まっているのできちんと読んで勉強しましょう。

時短アイテム!日々の生活の質を上げる

日常生活における無駄を省く表品をまとめました。1日無駄な作業時間が10分発生するとしたら1年間で3600時間もその無駄な作業に時間を費やすことになります。このような魔の作業を消し去ってくれる商品をまとめました。全て自分が使ってお勧めできる商品のみ紹介してます。

気軽にお声かけください

このような形でほぼ毎日、情報発信を行ってます。技術的な部分で誤っている点などもあるかもしれません。その様な部分を発見した方はTwitterのDMなどで知らせていただければ凄い嬉しいです。また自身自身のエンジニアのネットワークを広げたいと思ってます。日頃六本木や渋谷にいることが多いですので気軽にお誘いください。情報交換しましょう。

筆者
筆者

今回の記事の内容は以上で終了です。最後まで読んでくれてありがとうございました。Twitterもやってるのでフォローしてくれたら嬉しいです!

タイトルとURLをコピーしました