根据真假切换元素的显示状态。
注意:
1、原理是修改元素display,实现显示隐藏。
2、指令后面的内容,最终都会解释为布尔值。
3、值为true元素显示,值为false元素隐藏。
实例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="app"> <input type="button" value="切换显示状态" @click="changeIsShow"> <img v-show="isShow" src="img/zhongqiu.jpg" alt=""> <input type="button" value="增加年龄" @click="addAge"> <img v-show="age>=18" src="img/zhongqiu.jpg" alt=""> </div> <!-- 导入开发版本的Vue --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <script> var app = new Vue({ el:"#app", data:{ isShow:false, age:15 }, methods:{ changeIsShow:function(){ this.isShow = !this.isShow; }, addAge:function(){ this.age++; } } }) </script> </body> </html>
结果:
初始结果:
点击切换显示状态:
点击三次增加年龄:
根据表达式的真假切换元素的显示状态。
注意:
1、本质是通过操纵dom元素来切换显示状态。
2、表达式的值为true,元素存在于dom树中,为false,从dom树中移除。
3、频繁的切换使用v-show,反之使用v-if,前者的切换消耗小。
实例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="app"> <input type="button" value="切换显示" @click="toggleIsShow"> <p v-if="isShow">哈哈哈 v-if</p> <p v-show="isShow">哈哈哈 v-show</p> <h2 v-if="temperature>=35">热死啦</h2> </div> <!-- 导入开发版本的Vue --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <script> var app = new Vue({ el:"#app", data:{ isShow:false, temperature:40 }, methods:{ toggleIsShow:function(){ this.isShow = !this.isShow; } } }) </script> </body> </html>
结果:
分析:
点击前:
点击后:
设置元素的属性
注意:
1、完整写法是 v-bind:属性名。
2、简写的话可以直接省略 v-bind,只保留 :属性名
。
3、需要动态增删clss建议使用对象的方式。
实例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> .active{ border:10px solid red; } </style> </head> <body> <div id="app"> <img v-bind:src="imgSrc" alt="" v-bind:title="imgTitle"> <br> <!-- 三元表达式 --> <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="isActive?'active':''" @click="toggleActive"> <br> <!-- 对象方式,建议使用 --> <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="{active:isActive}" @click="toggleActive"> </div> <!-- 导入开发版本的Vue --> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <script> var app = new Vue({ el:"#app", data:{ imgSrc:"img/zhongqiu.jpg", imgTitle:"中秋", isActive:false }, methods:{ toggleActive:function(){ this.isActive = !this.isActive; } } }) </script> </body> </html>
结果:
点击图片二或者图片三: