Vue页面内tab切换效果

<template>

        // 每一个 tab 绑定了一个点击事件,传入的参数对应着 tab 下的组件名以及其下标用来判断是否增加class属性

     <div>
       <div v-for="(item,index) in tabs">
         <div class="tabs"  @click="toggleTab(item.taburl,index)" :class="{active:index == num}">
               {{item.tabname}}
          </div>
       </div>
     </div>

 

     // 子组件,显示不同的 tab

     // is 特性动态绑定子组件

    // keep-alive 将切换出去的组件保留在内存中

     <prince :is="currentTab" keep-alive></prince>

</template>

<script>

// 引入子组件路径

    import tab1  from './components/tab1';

    import tab2 from './components/tab2';

    import tab3 from './components/tab3';

    import tab4 from './components/tab4';

    export default {

         name: 'app',

         data () {

                 return {

                     // currentTab 用于标识当前触发的子组件默认tab1

                     currentTab: 'tab1',    

          tabs: [
            {
              tabname: 'tab1标题',
              taburl: 'tab1  '
            },
            {
              tabname: 'tab2标题',
              taburl: 'tab2'
            },
            {
              tabname: 'tab3标题',
              taburl: 'tab3'
            },
            {
              tabname: 'tab4标题',
              taburl: 'tab4'
            }
          ]

                 };

          },

          components: {

                 // 声明子组件

                 tab1,

                 tab2,

                 tab3,

                 tab4

           },

            methods: {

                 toggleTab: function(tab,index) {

                      // tab 为当前触发标签页的组件名;index为点击tab的下标

                     this.currentTab = tab;

                     this.num = index           

                }

             }

        }

</script>

<style>

    .tabs.active{

              background:#c3c3c3;

      }

</style>

原作者:我不是黄悠然

原链接:https://www.jianshu.com/p/ba7d63def361
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

修改者:Ccc_D

原作者不是用循环创建tab栏,修改为循环生成tab栏以及增加class属性

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值