首页 > 编程 > JavaScript > 正文

vue2 中二级路由高亮问题及配置方法

2019-11-19 11:21:45
字体:
来源:转载
供稿:网友

实现效果图

 

1、项目中的图标使用的是element-ui框架中的图标,如果需要引入可以看我写的上一篇文章。

2、首先配置路由

我初始化项目的时候初始化了路由,所以打开router/index.js文件进行修改配置

router/index.js

import Vue from 'vue'import Router from 'vue-router'import Home from '@/components/Home'import Game from '@/components/Game'import Bbs from '@/components/Bbs'import Me from '@/components/Me'import Nba from '@/components/Nba'import Recommend from '@/components/Recommend'

Vue.use(Router)

export default new Router({ mode: 'history', linkActiveClass: 'active', routes: [ { path: '/', redirect: '/home' }, // 重定向到 home {  path: '/home',  name: 'Home',  component: Home,  // children path中"/home/"可以省略  children: [  {   path: '/',     // 子路由重定向   redirect: 'recommend'  },  {   path: 'recommend',   name: 'recommend',   component: Recommend  },  {   path: 'nba',   name: 'nba',   component: Nba  },  {   path: 'video',   name: 'video',   component: Nba  },  {   path: 'entertain',   name: 'entertain',   component: Nba  }  ] }, {  path: '/game',  name: 'Game',  component: Game }, {  path: '/bbs',  name: 'Bbs',  component: Bbs }, {  path: '/me',  name: 'Me',  component: Me } ]})

app.vue

底部导航封装为TabBar组件,在app.vue中引入

<template> <div id="app"> <div :class="{router: true}">  <router-view/> </div> <!-- 底部导航组件 --> <div :class="{tabbar: true}">  <tab-bar></tab-bar> </div> </div></template><script>import TabBar from './components/Tabs'export default { name: 'App', components: { // 底部导航组件 TabBar }}</script><style scoped> #app { width: 100%; height: 100%; display: flex; flex-direction: column; } .router { flex: 1; padding: 10pt; } .tabbar { height: 30pt; padding: 10pt 0; border-top: 1pt solid #e6e6e6; background: #fbfbfb; }</style>

Tabs.vue

<template> <div id="tabs"> <div class="home">  <!-- 点击其他tab页,再次点击home的时候,路由重定向到了recommend,注意写法 to="/home/" -->  <router-link to="/home/" tag="div">   <div><i class="el-icon-s-home"></i></div>  <div>首页</div>  </router-link> </div> <div class="game">  <router-link :to="{name: 'Game'}" tag="div">   <div><i class="el-icon-s-goods"></i></div>  <div>比赛</div>  </router-link> </div> <div class="bbs">  <router-link :to="{name: 'Bbs'}" tag="div">   <div><i class="el-icon-share"></i></div>  <div>社区</div>  </router-link> </div> <div class="me">  <router-link :to="{name: 'Me'}" tag="div">   <div><i class="el-icon-s-custom"></i></div>  <div>我</div>  </router-link> </div> </div></template><script>export default { name: 'TabBar'}</script><style scoped> #tabs {  width: 100%;  display: flex;  flex-direction: row;  justify-content: space-around;  align-items: center;  text-align: center;  color: #b5b5b5; } #tabs i {  font-size: 18pt; } .active {  color: #468dcc; }</style>

这样就添加了底部导航,然后我们配置home界面,home界面中有二级导航,而且在首页的二级导航选中的时候,需要高亮显示”首页“tab页

Home.vue

<template> <div id="home"> <div :class="{topbar: true}">  <router-link :to="{name: 'recommend'}" tag="div">推荐</router-link>  <router-link :to="{name: 'nba'}" tag="div">篮球(NBA)</router-link>  <router-link :to="{name: 'video'}" tag="div">视频</router-link>  <router-link :to="{name: 'entertain'}" tag="div">影视娱乐</router-link> </div> <div :class="{tabInfo: true}">  <router-view/> </div> </div></template><script>export default { name: 'Home', data () { return {  name: 'home' } }}</script><style scoped> #home { display: flex; flex-direction: column; text-align: left; height: 100%; } .topbar { height: 26pt; font-size: 12pt; color: #343434; background: #fbfbfb; border-bottom: 1pt solid #e6e6e6; margin-bottom: 10pt; display: flex; flex-direction: row; } .topbar div { margin: 0 5pt; } .topbar span { padding-bottom: 11pt; } .active { color: #468dcc; border-bottom: 1pt solid #468dcc; font-weight: bold; } .tabInfo { flex: 1; }</style>

总结

以上所述是小编给大家介绍的vue2 中二级路由 高亮问题及配置方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表