这里利用vue2.0 实现tab标签切换效果 比较实用
初学vue,练习写了一个demo 网上有很多同样的例子,但都只是改text数据,如果我想加入图片或者复杂的dom结构就不实用,今天这个就刚好可以。
先上代码:
html部分 【记得引入vue文件哦】
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> vue2.0 实现tab标签切换</title> </head> <style type="text/css"> .tab{width: 100px;height: 30px;text-align: center;border: 1px solid #ccc;float: left;line-height: 30px;} .on{background: red; color: #fff;} </style> <script src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> <body> <div v-cloak> <!-- 我这判断 下标,是测试使用的,建议大家判断的时候 改成 tab1... 这种--> <!-- 而且 我分别用不同的class类名来区别内容是否已更新,大家看的时候,可以查看代码变化--> <div v-if="avlist==0">aaa内容可以自行修改</div> <div v-else-if="avlist==1">内容可以自行修改bbb</div> <div v-else-if="avlist==2">内容可以自行修改ccc</div> <div v-else-if="avlist==3">内容可以自行修改ddd</div> <template v-for="(key,index) in list"> <div :class="{'on':isclass[index]}" @click="handal(index)">{{key}}</div> </template> </div> </body>
js部分
<script> var vm = new Vue({ el:"#app", data:{ list:['tab1','tab2','tab3','tab4'], isclass:[true,false,false,false],//用来表示状态,这个可以修改 也可以优化掉 avlist :0, }, methods:{ handal:function(a){ this.avlist=a; for(var i=0; i<this.isclass.length; i++){ this.isclass[i]=false; this.isclass[a]=true; } } }, }) </script>
这样写的好处就是,可以在dom结构中自行定义内容,if判断只是规定了某些内容要不要显示