欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue2.0实现的tab标签切换效果(内容可自定义)示例

程序员文章站 2022-08-28 10:02:38
本文实例讲述了vue2.0实现的tab标签切换效果。分享给大家供大家参考,具体如下: 这里利用vue2.0 实现tab标签切换效果 比较实用 初学vue,练习写了一个d...

本文实例讲述了vue2.0实现的tab标签切换效果。分享给大家供大家参考,具体如下:

这里利用vue2.0 实现tab标签切换效果 比较实用

初学vue,练习写了一个demo 网上有很多同样的例子,但都只是改text数据,如果我想加入图片或者复杂的dom结构就不实用,今天这个就刚好可以。

先上代码:

html部分 【记得引入vue文件哦】

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>www.jb51.net 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="http://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 id="app" v-cloak>
     <!-- 我这判断 下标,是测试使用的,建议大家判断的时候 改成 tab1... 这种-->
        <!-- 而且 我分别用不同的class类名来区别内容是否已更新,大家看的时候,可以查看代码变化-->
         <div class="aa" v-if="avlist==0">aaa内容可以自行修改</div>
         <div class="bb" v-else-if="avlist==1">内容可以自行修改bbb</div>
         <div class="cc" v-else-if="avlist==2">内容可以自行修改ccc</div>
         <div class="dd" v-else-if="avlist==3">内容可以自行修改ddd</div>
       <template v-for="(key,index) in list">
         <div class="tab" :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判断只是规定了某些内容要不要显示

使用在线html/css/javascript代码运行工具http://tools.jb51.net/code/htmljsrun测试上述代码,可得如下运行结果:

vue2.0实现的tab标签切换效果(内容可自定义)示例

希望本文所述对大家vue.js程序设计有所帮助。