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


Posted in Javascript onJune 10, 2019

实现效果图

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

Javascript 相关文章推荐
js 方法实现返回多个数据的代码
Apr 30 Javascript
在html页面上拖放移动标签
Jan 08 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
使用webpack打包koa2 框架app
Feb 02 Javascript
js中apply()和call()的区别与用法实例分析
Aug 14 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 #Javascript
vuex 中插件的编写案例解析
Jun 10 #Javascript
使用webpack搭建vue项目及注意事项
Jun 10 #Javascript
详解iview的checkbox多选框全选时校验问题
Jun 10 #Javascript
前端路由&amp;webpack基础配置详解
Jun 10 #Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 #Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 #Javascript
You might like
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python实现抖音视频批量下载
2018/06/20 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python实现从wind导入数据
2019/12/03 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python3 xpath和requests应用详解
2020/03/06 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
艺术用品:Arteza
2018/11/25 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
保密协议书范本
2014/04/22 职场文书
2015党建工作简报
2015/07/21 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS