摘要:在中配合條件渲染一整組因為是一個指令,需要將它添加到一個元素上。因此,如果需要非常頻繁地切換,則使用較好如果在運行時條件不太可能改變,則使用較好。
vue的條件渲染 v-if
v-if指令可以插入和刪除所命令的模板
Yes
data:{ ok:true }
輸出HTML
Yes
當我們更改 ok 為 false時
我們會發現頁面的 Yes 消失,在控制臺里面會發現 h1 標簽也已經消失。
我們知道 js 里面有 if 判斷語句是 if 和else if 和 else 配合使用,所以 vue 也為我們提供了一個 v-else-if 和 v-else 指令與 v-if 配合使用,但是 v-else-if 和 v-else 必須緊跟在 v-if 或者 v-else-if 元素之后。
比如我們做一個小例子來演示一下,假設ok>=90,我們顯示優秀,ok>=60時,顯示及格,OK<60時,顯示不及格。
優秀
及格
不及格
data:{ ok:100 }
當我們更改ok的值為 100 ,80 , 40 時,我們會發現頁面所顯示的依次是 優秀 , 及格 , 不及格。
在 < template > 中配合 v-if 條件渲染一整組因為 v-if 是一個指令,需要將它添加到一個元素上。但是如果我們想切換多個元素呢?此時我們可以把一個 < template > 元素當做包裝元素,并在上面使用 v-if。最終的渲染結果不會包含 < template > 元素。
Title
Paragraph 1
Paragraph 2
data:{ ok:true }
輸出HTML
Title Paragraph 1 Paragraph 2
我們在控制臺會發現< template > 元素真的并沒有渲染,而當我們更改 ok 為 false ,我們會發現頁面所有內容全部消失。
v-showv-show也是根據條件控制元素的顯示,用法與 v-if 相同,但是 v-show 與 v-if 不同的是,v-show 的元素始終會被渲染并保留在 DOM 中。v-show 是簡單地切換元素的 CSS 屬性 display 。
v-show 不支持 < template > 語法,也不支持 v-else
v-if VS v-showv-if 是“真正的”條件渲染,因為它會確保在切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變為真時,才會開始渲染條件塊。
相比之下, v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。
一般來說, v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件不太可能改變,則使用 v-if 較好。
v-if 和 v-for 一起使用當 v-if 與 v-for 一起使用時,v-for 具有比 v-if 更高的優先級。這意味著 v-if 將分別重復運行于每個 v-for 循環中。當你想為僅有的 一些 項渲染節點時,這種優先級的機制會十分有用
data:{ todo:[ {text:1,ok:true}, {text:2,ok:true}, {text:3,ok:true}, ] }
當 ok 為 true 時,輸出為
1 2 3
當我更改 data 里面第二的 ok 的值為 false 時,會輸出
1 3
這是先進行 v-for 的渲染,然后在進行 v-if 的渲染。
用 key 管理可復用的元素Vue 會盡可能高效地渲染元素,通常會復用已有元素而不是從頭開始渲染。這么做,除了使 Vue 變得非常快之外,還有一些有用的好處。例如,如果你允許用戶在不同的登錄方式之間切換:
Username
那么在上面的代碼中切換 loginType 將不會清除用戶已經輸入的內容。因為兩個模板使用了相同的元素, 不會被替換掉——僅僅是替換了它的 placeholder。
這樣也不總是符合實際需求,所以 Vue 為你提供了一種方式來聲明“這兩個元素是完全獨立的——不要復用它們”。只需添加一個具有唯一值的 key 屬性即可:
Username
注意,
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85127.html
摘要:并在上面使用,最終渲染結果將不包括元素。另外一個根據條件展示元素的指令,用法與大致相同。注意,不支持元素,也不支持與看完了文章,你會發現我們可以利用和兩個指令來控制我們元素的行為。 熟悉 Angular 的同學對指令肯定不會陌生,Vue中也借鑒了指令這一特性,在 Vue 中指令都是帶有 v- 的特殊屬性,那么指令有什么作用呢? 我的理解就是:指令是用來控制 DOM 元素的行為,例如最...
摘要:模版語法中的模版是基于的模版語法,所有的模版都是合法的,所以能被遵循規范的瀏覽器和解析器解析。表達式模版中不僅僅可以進行簡單的數據綁定操作,我們還可以在模版中進行簡單的表達式。我們也簡單的敘述了模版編譯的整個流程。 我們在上一篇說到如何把 Vue 實例中的數據顯示到視圖中,就會需要用到我們的模版,我們只是簡單的使用了一些,模版其實還有很多其他的特性。今天我們就來看看模版的其他特性。 模...
摘要:條件渲染上一篇與綁定下一篇的事件處理方法在中配合渲染一整組在使用控制元素的時候,我們需要將它添加到這個元素上去。最終的渲染結果不會包含元素。渲染如下列表渲染使用把一個數組對應為一組元素我們用指令根據一組數組的選項列表進行渲染。 條件渲染 上一篇:Class 與 Style 綁定:https://segmentfault.com/a/11...下一篇:Vue的事件處理方法:https:/...
摘要:拿到的都是而不是原始值,且這個值會動態變化。精讀對于的與,筆者做一些對比。因此采取了作為優化方案只有當第二個依賴參數變化時才返回新引用。不需要使用等進行性能優化,所有性能優化都是自動的。前端精讀幫你篩選靠譜的內容。 1. 引言 Vue 3.0 的發布引起了軒然大波,讓我們解讀下它的 function api RFC 詳細了解一下 Vue 團隊是怎么想的吧! 首先官方回答了幾個最受關注的...
摘要:圖在中應用三數據渲染過程數據綁定實現邏輯本節正式分析從到數據渲染到頁面的過程,在中定義了一個的構造函數。一、概述 vue已是目前國內前端web端三分天下之一,也是工作中主要技術棧之一。在日常使用中知其然也好奇著所以然,因此嘗試閱讀vue源碼并進行總結。本文旨在梳理初始化頁面時data中的數據是如何渲染到頁面上的。本文將帶著這個疑問一點點追究vue的思路。總體來說vue模版渲染大致流程如圖1所...
閱讀 2464·2021-11-23 09:51
閱讀 523·2019-08-30 13:59
閱讀 1829·2019-08-29 11:20
閱讀 2534·2019-08-26 13:41
閱讀 3244·2019-08-26 12:16
閱讀 733·2019-08-26 10:59
閱讀 3327·2019-08-26 10:14
閱讀 603·2019-08-23 17:21