v-show指令会根据表达式的真假值,切换元素的display CSS属性,来显示或者隐藏元素。当条件变化时,该指令会自动触发过渡效果。
【例4.1】v-show指令(源代码\ch04\4.1.html)。
<div id="app"> <h3 v-show="ok">电视机</h3> <h3 v-show="no">冰箱</h3> <h3 v-show="num>=1000">销量过千台!</h3> </div> <!--引入vue文件--> <script src="https://unpkg.com/vue@next"></script> <script> //创建一个应用程序实例 const vm= Vue.createApp({ //该函数返回数据对象 data(){ return{ ok:true, no:false, num:1000 } } //在指定的DOM元素上装载应用程序实例的根组件 }).mount('#app'); </script>
在谷歌浏览器中运行程序,按F12键打开控制台,并切换到“Elements”选项,展开<div>标签,结果如图4-1所示。
从上面的示例可以发现,“冰箱”并没有显示,因为v-show指令计算“no”的值为false,所以元素不会显示。
在谷歌浏览器的控制台中可以看到,使用v-show指令,元素本身是被渲染到页面的,只是通过CSS的display属性来控制元素的显示或者隐藏。如果v-show指令计算的结果为false,则设置其样式为“display:none;”。
下面在谷歌浏览器的控制台中,双击代码后修改“冰箱”一栏中display为true,可以发现页面中就显示了冰箱,如图4-2所示。
图4-1 v-show指令
图4-2 修改“冰箱”一栏中display为true