使用v-if和v-else或v-else-if之间不能添加其他元素。
<p v-if="type==1">正确示范</p>
<p v-else>索隆</p>
v-else 元必须紧跟在带 v-if或者
v-else-if 后面
<p v-if="type==1">错误示范</p>
<p>路飞</p>
<p v-else>索隆</p>
如果两个元素是完全独立的,不要复用它们”。只需添加一个具有唯一值的 key
属性即可
<template v-if="type=== 'username'" key="1">
<label>账号</label>
<input placeholder="输入账号">
</template>
<template v-else key="2">
<label>密码</label>
<input placeholder="输入密码">
</template>
v-show
<h1 v-show="show">Hello!</h1> //不显示
<h1 v-show="hien">Hello!</h1> //显示
data() {
return {
hien:true,
show: false,
};
},
相同点:都可以动态操作dom元素的显示隐藏
不同点:
1.v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐;
2.v-if适合不经常改变环境;v-show适合频繁切换;
3.v-if是惰性的,如果初始条件为假,则什么也不做;只有在条件第一次变为真时才开始局部编译(渲染), v-show是在任何条件下(首次条件是否为真)都被编译(渲染),然后被缓存,而且DOM元素保留;
说明:v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show
较好;如果在运行时条件很少改变,则使用 v-if
较好。