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" >
      <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>

  

原文地址:https://www.cnblogs.com/dyy-dida/p/11109689.html

时间: 2024-11-05 23:28:04

Vue中底部tabBar切换及跳转的相关文章

Vue中解决路由切换,页面不更新的实用方法

前言:vue-router的切换不同于传统的页面的切换.路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页面无法更新的问题了. 一.问题呈现 在路由中进行切换结果 这时候会发现input标签的value值并没有随着路由的改变而改变.并没有更新 二.解决方案① 给<router-view :key="key"></router-view>增加一个不同:key值,这样vue

----vue中遇到的IE页面跳转兼容问题----

vue项目打包之后在IE浏览器运行时页面不能跳转,并且报错,ChunkLoadError: Loading chunk 0 failed. 原因是我在utils.js里封装了一个方法,并且在组件中调用.在IE上跳转时就报错,当我把封装的方法放在组件当中时可以正常跳转,不管是什么方法只要引入utils.js就报错,原因尚未清楚.个人猜测应该是层级太深,IE找不到. 原文地址:https://www.cnblogs.com/zjy850984598/p/11789771.html

每天一点点之vue框架开发 - vue中使用vue-router切换页面时自动滚动到顶部的方法

1. 在main.js入口文件中写入 //路由跳转后,页面回到顶部 router.afterEach(() => { document.body.scrollTop = 0; document.documentElement.scrollTop = 0; } 位置如下: 2. 还可以在实例router对象的时候设置 export default new Router({ mode: 'hash', // base: '/dist/', scrollBehavior: () => ({ y: 0

vue中实现动态切换不同的值

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

vue中router以及route的使用

路由基本概念 route,它是一条路由. { path: '/home', component: Home } routes,是一组路由. const routes = [ { path: '/home', component: Home }, { path: '/about', component: About } ] router可以理解为一个容器,或者说一种机制,它管理了一组route.简单来说,route只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函

vue中$router以及$route的使用

路由基本概念 route,它是一条路由. { path: '/home', component: Home } routes,是一组路由. const routes = [ { path: '/home', component: Home }, { path: '/about', component: About } ] router可以理解为一个容器,或者说一种机制,它管理了一组route.简单来说,route只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函

vue中的锚链接跳转问题

vue中的锚链接跳转问题 在vue中的锚链接和普通的html不同,关于vue中的锚链接可以参考vue 中的  scrollBehavior 滚动行为 在router.js中 //创建 router 实例 const router = new VueRouter({ routes, mode: 'history', scrollBehavior(to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } } })

在vue中使用elementUI饿了么框架使用el-tabs,切换Tab如何实现实时加载,以及el-table表格使用总结

当我们在开发中遇到tab切换,这时候用el的el-tabs感觉很方便 但当我在把代码都写完后,发现一个问题就是页面打开时 虽然我们只能看见当前一个tab页,但是vue会帮你把你写的所有tab页的内容都渲染出来了,只是其他的隐藏了,同时其他tab的js也都走了一边,当你点击tab时js就不会再去请求后台 这种机制会造成一个问题,就是如果每个tab页的数据都过大的时候,可能就会导致首次打开页面卡顿现象,同时如果数据库数据在实时发生变化的话,比如你一分钟前打开的这个页面,看的是tab1的内容,看了1分

iOS中UIView之间布局及跳转的几种方式

UIView是iOS开发中所有视图的基类, 表示屏幕上的一块矩形区域, 同时可以处理该区域的绘制和触摸事件. UIViewController是视图控制器的基类, 用来处理屏幕之间的切换等操作, 提供视图管理模型. 一个UIViewController管理一个层级的UIView. 而RootViewController就是iOS应用启动时被载入的第一个视图控制器(可在main.storyboard中指定), 展示APP启动成功后的第一个界面. 因此, iOS中在各个UIViewControlle