Vue.js - 条件付きレンダリング
この記事では Vue.js の条件付きレンダリングについて説明します。必要な友達はこの記事の内容を参照してください。
v-if
たとえば、ハンドルバーの場合、次のような条件付きブロックを記述する必要があります:
<!-- Handlebars 模板 -->{{#if ok}} <h1>Yes</h1>{{/if}}
Vue では、同じ機能を実現するために v-if
ディレクティブを使用します: v-if
指令实现同样的功能:
<h1 v-if="ok">Yes</h1>
也可以用 v-else
添加一个“else 块”:
<h1 v-if="ok">Yes</h1>No
# 在 <template>
元素上使用 v-if
条件渲染分组
因为 v-if
是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template>
元素当做不可见的包裹元素,并在上面使用 v-if
。最终的渲染结果将不包含 <template>
元素。
<p id="example"> <template v-if='ok'> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template></p>
var vm = new Vue({ el: '#example', data: { ok: true } })
# v-else
和 v-else-if
可以使用 v-else
指令来表示 v-if
的“else 块”:
<p v-if="Math.random() > 0.5"> Now you see me</p> <p v-else> Now you don't </p>
<p v-if="type === 'A'"> A </p> <p v-else-if="type === 'B'"> B </p> <p v-else-if="type === 'C'"> C </p> <p v-else> Not A/B/C </p>
v-else
元素必须紧跟在带 v-if
或者 v-else-if
的元素的后面,否则它将不会被识别。
类似于 v-else
,v-else-if
也必须紧跟在带 v-if
或者 v-else-if
的元素之后。
v-show
另一个用于根据条件展示元素的选项是 v-show
指令。
<h1 v-show="ok">Hello!</h1>
不同的是带有 v-show
的元素始终会被渲染并保留在 DOM 中。v-show
只是简单地切换元素的 CSS 属性 display。
注意,v-show
不支持 <template>
元素,也不支持 v-else
。
v-if vs v-show
v-if
是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
v-if
也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
相比之下,v-show
就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
一般来说,v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show
较好;如果在运行时条件很少改变,则使用 v-if
较好。
v-if
在字符串模板中,比如 Handlebars,我们得像这样写一个条件块:
<!-- Handlebars 模板 -->{{#if ok}} <h1>Yes</h1>{{/if}}
在 Vue 中,我们使用 v-if
指令实现同样的功能:
<h1 v-if="ok">Yes</h1>
也可以用 v-else
添加一个“else 块”:
<h1 v-if="ok">Yes</h1>No
# 在 <template>
元素上使用 v-if
条件渲染分组
因为 v-if
是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 <template>
元素当做不可见的包裹元素,并在上面使用 v-if
。最终的渲染结果将不包含 <template>
元素。
<p id="example"> <template v-if='ok'> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template></p>
var vm = new Vue({ el: '#example', data: { ok: true } })
# v-else
和 v-else-if
可以使用 v-else
指令来表示 v-if
的“else 块”:
<p v-if="Math.random() > 0.5"> Now you see me</p> <p v-else> Now you don't </p>
<p v-if="type === 'A'"> A </p> <p v-else-if="type === 'B'"> B </p> <p v-else-if="type === 'C'"> C </p> <p v-else> Not A/B/C </p>
v-else
元素必须紧跟在带 v-if
或者 v-else-if
的元素的后面,否则它将不会被识别。
类似于 v-else
,v-else-if
也必须紧跟在带 v-if
或者 v-else-if
的元素之后。
v-show
另一个用于根据条件展示元素的选项是 v-show
指令。
<h1 v-show="ok">Hello!</h1>
不同的是带有 v-show
的元素始终会被渲染并保留在 DOM 中。v-show
只是简单地切换元素的 CSS 属性 display。
注意,v-show
不支持 <template>
元素,也不支持 v-else
。
v-if vs v-show
v-if
是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
v-if
也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
相比之下,v-show
rrreee
を使用することもできます。 v-else
「else ブロック」を追加します: 🎜rrreee🎜# <template>
要素で v-if
条件付きレンダリング グループを使用します strong>🎜 🎜 v-if
はディレクティブであるため、要素に追加する必要があります。しかし、複数の要素を切り替えたい場合はどうすればよいでしょうか?現時点では、<template>
要素を非表示のラッピング要素として扱い、それに v-if
を使用できます。最終的なレンダリングには、<template>
要素は含まれません。 🎜rrreeerrreee🎜# v-else
と v-else-if
🎜🎜 v-else
を使用できます。コマンド to v-if
の「else ブロック」を表します: 🎜rrreeerrreee🎜v-else
要素の直後に v-if
または v-else-if
要素、それ以外の場合は認識されません。 🎜🎜 v-else
と同様に、v-else-if
の後にも v-if
または v-else を続ける必要があります - if
要素の後。 🎜v-show
🎜 要素を条件付きで表示するためのもう 1 つのオプションは、v-show
ディレクティブです。 🎜rrreee🎜 違いは、v-show
を持つ要素は常にレンダリングされ、DOM に残ることです。 v-show
は、要素の CSS プロパティの表示を切り替えるだけです。 🎜🎜v-show
は <template>
要素をサポートしておらず、v-else
もサポートしていないことに注意してください。 🎜v-if と v-show
🎜v-if
は、イベント リスナーとサブコンポーネントが確実に破棄されて再作成されるため、「実際の」条件付きレンダリングです。適当に。 🎜🎜v-if
も遅延型です。最初のレンダリングで条件が false の場合、何も行われません。条件が最初に true になるまで、条件付きブロックのレンダリングは開始されません。 🎜🎜 それに比べて、v-show
ははるかに単純です。初期条件が何であっても要素は常にレンダリングされ、CSS に基づいて切り替えるだけです。 🎜🎜一般に、v-if
はスイッチング オーバーヘッドが高く、v-show
は初期レンダリング オーバーヘッドが高くなります。したがって、頻繁に切り替える必要がある場合は、v-show
を使用することをお勧めします。実行時に条件がほとんど変更されない場合は、v-if
を使用することをお勧めします。 🎜v-if
🎜ハンドルバーなどの文字列テンプレートでは、次のような条件ブロックを記述する必要があります: 🎜rrreee🎜Vue では、v-if
ディレクティブを使用します。同じ機能を実現するには: 🎜rrreee🎜 v-else
を使用して「else ブロック」を追加することもできます: 🎜rrreee🎜# <template>
で使用します> 要素 v-if
条件付きレンダリングのグループ化🎜🎜 v-if
はディレクティブであるため、要素に追加する必要があります。しかし、複数の要素を切り替えたい場合はどうすればよいでしょうか?現時点では、<template>
要素を非表示のラッピング要素として扱い、それに v-if
を使用できます。最終的なレンダリングには、<template>
要素は含まれません。 🎜rrreeerrreee🎜# v-else
と v-else-if
🎜🎜 v-else
を使用できます。コマンド to v-if
の「else ブロック」を表します: 🎜rrreeerrreee🎜v-else
要素の直後に v-if
または v-else-if
要素、それ以外の場合は認識されません。 🎜🎜 v-else
と同様に、v-else-if
の後にも v-if
または v-else を続ける必要があります - if
要素の後。 🎜v-show
🎜 要素を条件付きで表示するためのもう 1 つのオプションは、v-show
ディレクティブです。 🎜rrreee🎜 違いは、v-show
を持つ要素は常にレンダリングされ、DOM に残ることです。 v-show
は、要素の CSS プロパティの表示を切り替えるだけです。 🎜🎜v-show
は <template>
要素をサポートしておらず、v-else
もサポートしていないことに注意してください。 🎜v-if と v-show
🎜v-if
は、イベント リスナーとサブコンポーネントが確実に破棄されて再作成されるため、「実際の」条件付きレンダリングです。適当に。 🎜🎜v-if
も遅延型です。最初のレンダリングで条件が false の場合、何も行われません。条件が最初に true になるまで、条件付きブロックのレンダリングは開始されません。 🎜🎜 それに比べて、v-show
ははるかに単純です。初期条件が何であっても要素は常にレンダリングされ、CSS に基づいて切り替えるだけです。 🎜一般的に言えば、v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show
较好;如果在运行时条件很少改变,则使用 v-if
の方が優れています。
関連する推奨事項:
vue.js+layer テーブルのデータバインディングと更新
以上がVue.js - 条件付きレンダリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
