v-show CSS による表示切り替え
最終更新:2026-10-22
v-show CSS による表示切り替え
v-show は式の真偽に応じて要素の display スタイルを切り替えます。要素は常に DOM に残り、表示・非表示だけが変わります。
| グループ | ディレクティブ |
|---|---|
| 種類 | ディレクティブ |
| スコープ | テンプレート |
| Vue バージョン | 3.0+ |
| SSR 対応 | 対応 |
📝 構文
<p v-show="isVisible">今、私が見えています</p>
⚙️ 引数
| expression | 任意の真偽値を返す式 |
|---|
戻り値:ディレクティブ。戻り値なし
▶ 例
以下のコードを編集して結果を確認しましょう:
出力:
Toggling hides/shows the text while the element remains in the DOM with display: none.
💡 ポイント
💡 ヒント 頻繁に切り替える場合は v-show の方が効率的です。CSS を変えるだけで、DOM の破棄・再構築のオーバーヘッドがありません。
ℹ️ 補足 初期条件が偽でも要素はレンダリングされます(DOM に残る)ため、初期コストが高くなります。
⚠️ 注意 v-show は v-else をサポートしません。スタイルの切り替えであり、条件分岐ディレクティブではありません。
🏷️ 関連ディレクティブ
💡 関連ケース
関連ケースは近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q v-show と v-if はどちらを選ぶべきですか?
A 切り替え頻度が高い → v-show(CSS のみ変更)。条件がほとんど変わらない・遅延レンダリングが必要 → v-if。
Q v-show で隠れた要素は開発者ツールで見えますか?
A 見えます。要素は display が none の状態で常に DOM に残っています。
Q v-show は v-else と組み合わせられますか?
A いいえ。v-show は分岐ディレクティブではありません。排他的な表示には v-if / v-else を使ってください。