视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue2 中二级路由高亮问题及配置方法
2020-11-27 21:55:25 责编:小采
文档


实现效果图

 

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 中二级路由 高亮问题及配置方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

下载本文
显示全文
专题