Vue では、v-if
と v-show
を使用して要素またはテンプレートのレンダリングを制御できます。 v-if
と v-show
も Vue で一般的に使用される内部命令です。ここで説明する命令は directive
であり、プレフィックス v-
が付いた特別なコマンドを指します。命令の値はバインディング式に限定されます。命令の責任は次のとおりです。変更時に DOM に特別な動作を適用します。 2 つの命令
v-if
と v-show
は、誰もが 条件付きレンダリング命令 ## とよく呼ぶものです。 #。 (学習ビデオ共有: vue ビデオ チュートリアル)
v-if : 条件分岐命令
まず見てみましょう
v-if ディレクティブ。その機能は、式
true または
false の値に基づいて DOM 内の要素 (または複数の要素) を生成または削除することです。これは、JavaScript の
if の条件判断に似ています。 Vue には、
v-if に加えて、
v-else-if と
v-else もあります。
v-if
前述の通りv-if式の値に従って決定DOM 内に要素を生成するかどうか。例:
<!-- template --> <div> <h1 id="v-if的值为true时-显示这个div元素">v-if的值为true时,显示这个div元素</h1> </div> // JavaScript var app = new Vue({ el: '#app', data: { } })この時点で、
要素が
div#app 要素に挿入され、次のように表示されます:
v-if ディレクティブを追加し、その値を
true# に設定します。 ## または false
。たとえば、上の例では true
を設定し、要素がレンダリングされます。上記の true
値を false
に変更すると、<h1></h1>
要素は表示されません。
に true
または false
を直接設定するほか、式で判定することもできます。例: <pre class="brush:php;toolbar:false"><!-- template -->
<div>
<h1>
v-if的值为true时,显示这个div元素
</h1>
</div>
// JavaScript
var app = new Vue({
el: '#app',
data: { isShow: true }
})</pre>
上記の例では、
の値が true
として宣言され、h1
要素で次のように宣言されています。 v-if
ディレクティブ バインディング isShow
を渡します。実際、これは v-if="true"
に似ています。 h1
要素も通常どおりレンダリングされます。
を false
に設定すると、 h1
要素はレンダリングされません。
上では 1 つの要素をレンダリングしていますが、複数の要素をレンダリングしたい場合は、内部に複数の要素を直接入れ子にする必要がありますか?私たちの考えを検証してみましょう:
<!-- template --> <div> <div> <h1 id="我是标题">我是标题</h1> <p>我是段落</p> </div> </div>
は想像どおりです。ただし、Vue では、複数の要素を切り替える場合、通常はこの方法ではなく、パッケージ化要素として
要素を使用し、v-if# を使用します。 ## その上で。最終的なレンダリング結果には、
要素は含まれません。次のように:
<template>
<h1 id="标题">标题</h1>
<p>段落 1</p>
<p>段落 2</p>
</template>
##v-else
v-else と JavaScript の
else も似ていますが、v-if
と組み合わせて使用する必要があります。たとえば、ログインすると、ログインしている場合はウェルカム メッセージが表示され、ログインしていない場合はログインするように求められます。次に、次のような isLogined
式を設定します。 <pre class="brush:php;toolbar:false"><!-- Template -->
<div>
<h1 id="欢迎来到W-cplus">欢迎来到W3cplus!(^_^)</h1>
<h1 id="请先登录-再来">请先登录,再来!(^_^)</h1>
</div>
// JavaScript
var app = new Vue({
el: '#app',
data: {
isLogined: true
}
})</pre>
ご想像のとおり、ブラウザで次の図の効果が確認できます。
isLogined の値を
に置き換えると、レンダリングされるコンテンツが変更されます:
v-if と
を <template> とともに使用します。実装は非常に簡単です。たとえば、勝った場合と勝てなかった場合: <code><pre class="brush:php;toolbar:false"><template>
<figure>
<figcaption>恭喜你中了5元红包</figcaption>
<img src="/static/imghwm/default1.png" data-src="xxx" class="lazy" alt="Vue の条件付きレンダリング命令の詳細な説明: v-if および v-show" >
</figure>
</template>
<template>
<figure>
<figcaption>亲,就差那么一点点</figcaption>
<img src="/static/imghwm/default1.png" data-src="xxx" class="lazy" alt="Vue の条件付きレンダリング命令の詳細な説明: v-if および v-show" >
</figure>
</template></pre>
v-else-if
##v-else-if および else if JavaScript
も同様で、v-if と一緒に使用する必要があります。複数の条件が同時に存在する場合は、演算結果に基づいて表示するかどうかを決定します。次のコードに示すように、表示されるブロックは
type の値に基づいて決定されます。たとえば、この例では、
type の値が
B に設定されている場合、ブロック
B が表示されます。変更
type の値は、別の領域を表示します:
v-show
文章开头提到过,除了v-if
之外,Vue还提供v-show
也可以控制元素的渲染。v-show
和v-if
功能有点相似,其中v-if
依赖于控制DOM节点,而v-show
是依赖于控制DOM节点的display
属性。当v-show
传入的值为true
时,对应DOM元素的display
的值为block
之类的,反之为false
时,display
的值为none
。也就是用户看不到元素的显示,但其DOM元素还是存在的。
<!-- Template --> <div> <h1 id="我是一个标题">我是一个标题</h1> <p>我是一个段落</p> </div> // JavaScript var app = new Vue({ el: '#app', data: { isShow: false } })
在浏览器看到的效果将是这样的:
注意,
v-show
不支持<template></template>
语法,也不支持v-else
。
v-if Vs. v-show
v-if
和v-show
都能控制DOM元素的显示和隐藏,但是在切换v-if
模块时,Vue有一个局部编译/卸载过程,因为v-if
中的模板可能包括数据绑定或者子组件,v-if
是真是的条件渲染,它会确保条件快在切换时合适的销毁与重建条件块内的时间监听器和子组件。
两者之间的具体区别,官网是这样描述的:
-
v-if
是“真正的”条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建 -
v-if
也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。 - 相比之下,
v-show
就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
一般来说,v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show
较好;如果在运行时条件不太可能改变,则使用 v-if
较好。
总结
这篇文章主要了解了Vue中的v-if
和v-show
。这两个都是Vue的内部指令,而且都是用来控制元素的渲染。只不过,v-if
判断是否加载,可以减轻服务器的压力,在需要时加载;v-show
调整DOM元素的CSS的dispaly
属性,可以使客户端操作更加流畅。虽然这两都都能很好的控制元素的渲染,但实际使用的时候,更应该根据自己的场景来判断使用哪一个指令。
原文地址::https://www.w3cplus.com/vue/v-if-vs-v-show.html
以上がVue の条件付きレンダリング命令の詳細な説明: v-if および v-showの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Web開発におけるVue.jsの役割は、開発プロセスを簡素化し、効率を向上させるプログレッシブJavaScriptフレームワークとして機能することです。 1)開発者は、レスポンシブデータのバインディングとコンポーネント開発を通じてビジネスロジックに集中できるようになります。 2)VUE.JSの作業原則は、パフォーマンスを最適化するためにレスポンシブシステムと仮想DOMに依存しています。 3)実際のプロジェクトでは、VUEXを使用してグローバルな状態を管理し、データの応答性を最適化することが一般的な慣行です。

Vue.jsは、2014年にYou YuxiがリリースしたプログレッシブJavaScriptフレームワークで、ユーザーインターフェイスを構築します。その中心的な利点には、次のものが含まれます。1。レスポンシブデータバインディング、データ変更の自動更新ビュー。 2。コンポーネントの開発では、UIは独立した再利用可能なコンポーネントに分割できます。

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1)Reactのコンポーネント開発モデルと強力なエコシステムが、Netflixがそれを選択した主な理由です。 2)コンポーネント化により、Netflixは複雑なインターフェイスをビデオプレーヤー、推奨リスト、ユーザーコメントなどの管理可能なチャンクに分割します。 3)Reactの仮想DOMおよびコンポーネントライフサイクルは、レンダリング効率とユーザーインタラクション管理を最適化します。

Netflixのフロントエンドテクノロジーでの選択は、主にパフォーマンスの最適化、スケーラビリティ、ユーザーエクスペリエンスの3つの側面に焦点を当てています。 1。パフォーマンスの最適化:Netflixは、Reactをメインフレームワークとして選択し、SpeedCurveやBoomerangなどのツールを開発して、ユーザーエクスペリエンスを監視および最適化しました。 2。スケーラビリティ:マイクロフロントエンドアーキテクチャを採用し、アプリケーションを独立したモジュールに分割し、開発効率とシステムのスケーラビリティを改善します。 3.ユーザーエクスペリエンス:Netflixは、Material-UIコンポーネントライブラリを使用して、A/Bテストとユーザーフィードバックを介してインターフェイスを継続的に最適化して、一貫性と美学を確保します。

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

Netflixは、主に、パフォーマンス、スケーラビリティ、開発効率、エコシステム、技術的な負債、およびフレームワーク選択におけるメンテナンスコストを考慮しています。 1。パフォーマンスとスケーラビリティ:JavaとSpringbootが選択され、大規模なデータと高い同時リクエストを効率的に処理します。 2。開発効率とエコシステム:Reactを使用して、フロントエンド開発効率を向上させ、その豊富なエコシステムを利用します。 3.技術的な負債とメンテナンスコスト:node.jsを選択してマイクロサービスを構築して、メンテナンスコストと技術的債務を削減します。

Netflixは、主にReactをフロントエンドフレームワークとして使用し、特定の機能のためにVUEによって補足されます。 1)Reactのコンポーネント化と仮想DOMは、Netflixアプリケーションのパフォーマンスと開発効率を向上させます。 2)VueはNetflixの内部ツールと小規模プロジェクトで使用されており、その柔軟性と使いやすさが重要です。

Vue.jsは、複雑なユーザーインターフェイスを構築するのに適した進歩的なJavaScriptフレームワークです。 1)そのコア概念には、レスポンシブデータ、コンポーネント、仮想DOMが含まれます。 2)実際のアプリケーションでは、TODOアプリケーションを構築し、Vuerouterを統合することで実証できます。 3)デバッグするときは、vuedevtools and Console.logを使用することをお勧めします。 4)パフォーマンスの最適化は、V-IF/V-Show、リストレンダリング最適化、コンポーネントの非同期負荷などを通じて達成できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
