v-ifディレクティブを使用することで条件分岐処理を実行することが出来る。
ifの実装例
html
<div id="app">
<p v-if="true_data">This is True</p>
<p v-if="false_data">This is False</p>
</div>
js
var app = new Vue({
el: '#app',
data: {
true_data: true,
false_data: false,
}
})
出力結果
This is True
true_data が true の要素だけが描画され、false_data の方は DOM ごと生成されない。表示・非表示を CSS で切り替えるのではなく、条件が false の要素はそもそも作られないのが v-if の挙動である。
else if と else の実装
html
<div id="app">
<div v-if="false_data">
if
</div>
<div v-else-if="true_data">
else if
</div>
<div v-else>
else
</div>
</div>
出力結果
else if
v-else-if と v-else は、直前の要素が v-if / v-else-if であることが条件になる。間に別の要素を挟むと認識されない。また v-else には値を書かない。
templateによるグループ化
ifを付けた要素の子要素が複数ある場合は正しく評価されない。
以下、正しく評価されない実装例
<div v-if="true_data">
<p>aaa</p>
<p>bbb</p>
</div>
この書き方だと、条件分岐のためだけに <div> が実際の DOM に残ってしまう。レイアウト用の意味を持たない要素が増えると、CSS のセレクタや Flexbox / Grid の親子関係が崩れる原因になる。
正しく評価するにはtemplateタグを使用する必要がある。
<template v-if="true_data">
<p>aaa</p>
<p>bbb</p>
</template>
<template> は描画されない入れ物なので、条件を満たしたときに中身の <p> だけが出力される。複数要素をまとめて出し分けたいときは、常にこちらを使えばよい。
子ページ
子ページはありません
同階層のページ
- インストール(ファイルのダウンロード)
- npmを使用したプロジェクトの作成
- for 繰り返し処理
- ifの条件分岐とtemplateを用いたグループ化
- クリック時のイベント処理(on:click)
- modelとdata フォーム入力値とDOMへの即時反映
- computed(算出プロパティ)と使い方とdataとの違い
- ライフサイクルフック(created / mounted / updated / destroyedの使い方)
- $nextTickの使い方(ライフサイクルフック)
- メソッドの定義方法
- エラー一覧
- ルーティング設定
- aリンクの貼り方と動的URLの作成
- Mixinを利用した共通処理の記述方法
- v-bindによるデータ連携
- ヘッダー/フッターの共通コンポーネント
- ナビゲーションの現在ページをハイライトする方法
- 画面サイズの取得方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38