Vue條件渲染指令 v if 和 v show

2021-10-09 23:28:39 字數 2829 閱讀 6969

條件渲染,即根據一定的條件來判斷是否渲染當前頁面。

>

v-if

="isshow"

>

v-if,isshow為true時p

>

div>

>

newvue(}

);script

>

結果如下:

改變isshow的值之後,就會發生變化。

用於表達v-if的else部分。

>

v-if

="isshow"

>

v-if,isshow為true時

>

1p>

>

2p>

h4>

v-else

>

v-else部分

h4>

div>

>

newvue(}

);script

>

結果如下:

v-else部分沒有被渲染出來。

若改變isshow的值,則如下圖。

v-else 元素必須緊跟在帶 v-if 或者 v-else-if 的元素的後面,否則它將不會被識別

2.1.0 新增

>

v-if

="age<=18"

>

未成年人!

h4>

v-else-if

="age<45"

>

成年了,但小於45歲!

h4>

v-else

>

你大於等於45歲!

h4>

div>

>

newvue(}

);script

>

結果如下圖:

v-else元素必須緊跟在帶v-if或者v-else-if的元素的後面,否則它將不會被識別。

vue 會盡可能高效地渲染元素,通常會復用已有元素而不是從頭開始渲染。這麼做除了使 vue變得非常快之外,還有其它一些好處。(涉及vue虛擬dom內容,這裡先不詳細講)

不過據此,當使用v-if時,可以通過key來控制是否重新渲染。

若二者key不同,就會重新渲染,而非復用。

如下**段,兩個是否重新渲染,可以由key控制。

v-if

="logintype === 'username'

">

>

usernamelabel

>

placeholder

="username"

key="ab"

>

template

>

v-else

>

>

emaillabel

>

placeholder

="email"

key="aa"

>

template

>

根據條件展示元素,與v-if類似。

v-show

="ok"

>

hello!h1

>

不同的是帶有v-show的元素始終會被渲染並保留在 dom 中。v-show只是簡單地切換元素的 css property display。

注意,v-show不支援元素,也不支援v-else

v-ifv-if是「真正」的條件渲染,因為它會確保在切換過程中條件塊內的事件***和子元件適當地被銷毀和重建。

條件為false時,v-if什麼都不會做,其元素不會出現在dom中。

v-show

不管初始條件是什麼,元素總是會被渲染,並且只是簡單地基於 css 進行切換。

只是增加了乙個行內樣式dispaly:none。選擇

一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。

如果需要非常頻繁地切換,則使用 v-show 較好;

如果在執行時條件很少改變,則使用 v-if 較好。

vue中v if條件渲染

1.判斷後台返回的值是檢測中止 或出具報告的時候 讓更改狀態按鈕消失 已發樣等待收樣 支付完成等待發樣 出現取消專案 html部分 v for yong,index in yonghu key index class person box class person one span div clas...

Vue條件渲染(v if和v show的區別)

在專案中我們總是用到根據某一值判斷屬性是否顯示,或不同的值讓其顯示不同,顧名思義總是用v if來實現,v show也可用來判斷是否顯示,兩者有什麼區別呢?相同點 兩者都可用作為條件判斷元素是否顯示。不同點 1 v if後可跟v else if和v else用來進行不同條件下的顯示元件的不同可能性,v...

Vue中列表渲染指令中key屬性的理解

在官網中看到v for指令中key這一塊時,對其感覺懵懵懂懂,查閱了一些資料,把自己的理解記錄下來,做乙個心得,不知道理解的對不對,希望有大牛指導。vue在更新v for指令渲染過的html時,採用的是就地復用策略,也就是已有的html元素不在重新渲染,直接更新部分資料,這對簡單的html來說沒有影...