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

实现效果图

 

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

以上是 vue2 中二级路由高亮问题及配置方法 的全部内容, 来源链接: utcz.com/z/336324.html

回到顶部