v-if 和 v-show
在vue中,v-if 和 v-show 会根据接收 true/false 信息使得页面上元素达到显示或隐藏的效果。
语法:
<标签 v-if="true/false"></标签>
<标签 v-show="true/false"></标签>
<!--true:显示 false:隐藏-->
原理:
v-if:通过 创建、销毁 dom元素的方式达到显示、隐藏效果(销毁后有一个占位符 )。
v-show:通过css控制样式style达成显示、隐藏效果。
display:none; 隐藏
display:block; 显示
特点:
v-if 有更高的切换消耗 ,如果运行条件不大可能改变,则v-if 较合适。
v-show有更高的渲染消耗,如果需要频繁切换,则v-show 较合适。
注意:
v-if使得元素被隐藏后,这个元素的物理位置有一个名称为<!---->的占位符,其与html的注释信息没有关系。
案例:
通过按钮控制,使得元素内容在显示和隐藏之间切换:
<style>
#one{ 300px;height: 40px;background-color:orange;}
#two{ 300px;height: 40px;background-color:lightgreen;}
</style>
</head>
<body>
<div id="app">
<h2>v-if和v-show</h2>
<button @click="flag=!flag">切换</button>
<p id="one" v-if="flag">vue指令--v-if</p>
<p id="two" v-show="flag">vue指令--v-show</p>
</div>
<script src="./vue.js"></script>
<script>
var vm = new Vue({
el:'#app',
data:{
flag:false // 控制标签是否显示true/false
},
});
</script>
注意:
事件驱动不仅可以是methods方法,也可以是简单的js语句。
v-if 和 v-else
在Vue中,v-if 、v-else-if 和 v-else 三个指令结合可以实现多路分支结构。
v-if 可以单独使用,形成单路分支结构。
v-if 和 v-else 可以合作使用,实现双路分支结构。
v-if 、v-else-if 和 v-else 可以合作使用,实现多路分支结构。
语法:
<标签 v-if="true/false"></标签>
<标签 v-else-if="true/false"></标签>
<标签 v-else-if="true/false"></标签>
<标签 v-else></标签>
注意:
以上4个标签分支结构,最终只会走一个,第一个为true的那个标签会执行 或 执行v-else。
案例应用:
判断品牌信息是否存在,并显示对应内容
<table v-if="brandList.length>0">
……
</table>
<table v-else>
<tr><td>没有任何记录!</td></tr>
</table>
注意:
v-if 和v-else 一并使用,页面没有<!---->占位符了。
————————————————
版权声明:本文为CSDN博主「木蓝茶陌*_*」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jyn15159/article/details/111245324