vue條件渲染
阿新 • • 發佈:2018-02-09
blog -s pos 靈活 -i template 改變 add email
1. v-if
實例
基本使用
Yes
如果想切換多個元素,可以使用template元素,渲染結構不包含template元素
<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
- 使用else
<div v-if="Math.random() > 0.5"> Now you see me </div> <div v-else> Now you don't </div>
- 使用v-else-if
<div v-if="type === 'A'">
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type === 'C'">
C
</div>
<div v-else>
Not A/B/C
</div>
2. 使用key管理可復用元素
不使用key,當切換登陸方式時候,input框中已經輸入的內容不會變,只是placeholder中內容改變,這是因為兩個模板使用了相同的元素,所以會復用,vue這樣做是為了高效的渲染元素
<template v-if="loginType === 'username'"> <label>Username</label> <input placeholder="Enter your username"> </template> <template v-else> <label>Email</label> <input placeholder="Enter your email address"> </template>
使用key的情況下,每次切換時,input輸入框都將被重新渲染,
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username" key="username-input">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address" key="email-input">
</template>
3. v-show
v-show切換元素的css屬性 display
<h1 v-show="ok">Hello!</h1>
4. v-if vs v-show
v-if 切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建,如果初始條件為假,則什麽都不做,知道變為真時,才會開始渲染條件塊
v-show 不管初始條件是什麽,元素總會被渲染,只是簡單基於css切換
根據條件靈活的選用
5. 註意
v-show 不支持 元素,也不支持 v-else
當 v-if 與 v-for 一起使用時,v-for 具有比 v-if 更高的優先級。
vue條件渲染