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>
    

      

  • 相关阅读:
    ActiveMQ中JMS的可靠性机制
    ActiveMQ中Broker的应用与启动方式
    ActiveMQ支持的传输协议
    ActiveMQ常见消息类型
    Oracle体系结构及备份(十六)——bg-ckpt
    PHP自学之路---雇员管理系统(1)
    UVa11187
    给Android组件添加事件一个很好用的方法
    【项目那些事儿】项目哪些事儿?
    struts2对拦截器使用带实例
  • 原文地址:https://www.cnblogs.com/dyy-dida/p/11109689.html
Copyright © 2011-2022 走看看