zoukankan      html  css  js  c++  java
  • Vue中底部tabBar切换及跳转

     tabBar.vue文件,写法如下:

     <div class="tab">
        <div class="tab_item" v-for="(item ,index) in tabBarImg" :key="index" @click="switchToTab(item.path)">
          <img :src="$route.path === item.path ? item.icon : item.normal" alt="">
          <span :class="$route.path === item.path ? 'active' : ''">{{item.title}}</span>
        </div>
      </div>
    

      tabBar.vue 中 js

    export default {
        name: "Tabbar",
        data(){
          return{
            tabBarImg:[
              {
                path:'/home',
                normal:require('./../assets/img/tab_guamai_nor_icon-xhdpi.png'),
                icon:require('./../assets/img/tab_guamai_sel_icon-xhdpi.png'),
                title:'娱乐咨询'
              },
              {
                path:'/chat',
                normal:require('./../assets/img/tab_hangqing_nor_icon-xhdpi.png'),
                icon:require('./../assets/img/tab_hangqing_sel-xhdpi.png'),
                title:'聊天'
              },
              {
                path:'/me',
                normal:require('./../assets/img/tab_wode_nor_icon-xhdpi.png'),
                icon:require('./../assets/img/tab_wode_sel_icon-xhdpi.png'),
                title:'我的'
              },
            ]
          }
        },
        methods:{
          switchToTab(path){
            console.log(path);
            this.$router.replace(path);
          }
        }
      }
    

     路由代码如下:

      meta:用来判断底部tabbar组件是否显示

    import Vue from 'vue'
    import VRouter from 'vue-router'
    
    import Home from './../components/Home.vue';
    import Chat from './../components/Chat.vue';
    import Me from './../components/Me.vue';
    import Login from './../components/Login.vue';
    
    
    Vue.use(VRouter);
    
    export default new VRouter({
      mode:'history',
      routes:[
        {
          path:'/home',
          component:Home,
          meta:{
            showTab:true
          }
        },
        {
          path:'/chat',
          component:Chat,
          meta:{
            showTab:true
          }
        },
        {
          path:'/me',
          component:Me,
          meta:{
            showTab:true
          }
        },
        {
          path:'/login',
          component:Login
        },
        {
          path:'/',
          redirect:'/home'
        }
      ]
    })
    

     App.vue中,判断 底部导航栏是否显示

    <tabbar v-if="$route.meta.showTab"></tabbar>
    

      

  • 相关阅读:
    node.js基础回顾
    PHP基础回顾之表单(二)
    PHP基础回顾(一)
    知识图谱Knowledge Graph
    Qt addStretch()详解
    Qt实现 QQ好友列表QToolBox
    Qt5
    用户级线程和内核级线程
    TCP状态转换图、滑动窗口、半连接状态、2MSL
    理解tcp顺序释放操作和tcp的半关闭
  • 原文地址:https://www.cnblogs.com/dyy-dida/p/11109689.html
Copyright © 2011-2022 走看看