element-ui使用导航栏跳转路由的用法详解


Posted in Javascript onAugust 22, 2018

最近初学vue,试着做一个小项目熟悉语法与思想,其中使用elemen-ui的导航栏做路由跳转切换页面。下面记录一下学习过程

element-ui引入vue项目的用法参考element官网

首先复制官网的例子,在这基础上再修改成我们想要的样子。

<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
 <el-menu-item index="1">处理中心</el-menu-item>
 <el-submenu index="2">
 <template slot="title">我的工作台</template>
 <el-menu-item index="2-1">选项1</el-menu-item>
 <el-menu-item index="2-2">选项2</el-menu-item>
 <el-menu-item index="2-3">选项3</el-menu-item>
 <el-submenu index="2-4">
  <template slot="title">选项4</template>
  <el-menu-item index="2-4-1">选项1</el-menu-item>
  <el-menu-item index="2-4-2">选项2</el-menu-item>
  <el-menu-item index="2-4-3">选项3</el-menu-item>
 </el-submenu>
 </el-submenu>
 <el-menu-item index="3" disabled>消息中心</el-menu-item>
 <el-menu-item index="4"><a href="https://www.ele.me" rel="external nofollow" target="_blank">订单管理</a></el-menu-item>
</el-menu>

<script>
 export default {
 data() {
  return {
  activeIndex: '1'
  };
 },
 methods: {
  handleSelect(key, keyPath) {
  console.log(key, keyPath);
  }
 }
 }
</script>

属性:

* default-active:表示当前active的菜单项的编号
* index:类型为字符串,在每一个el-menu-item组件上都有一个编号,给default-active标记

使用菜单栏进行路由跳转:

<el-menu :default-active="this.$router.path" router mode="horizontal">
 <el-menu-item v-for="(item,i) in navList" :key="i" :index="item.name">
  {{ item.navItem }}
 </el-menu-item>
</el-menu>

数据:

data() {
  return {
  navList:[
   {name:'/findProject',navItem:'发现项目'},
   {name:'/communityActivity',navItem:'社区动态'},
   {name:'/publishProject',navItem:'发布项目'},
   {name:'/personalCenter',navItem:'个人中心'},
   {name:'/manageCenter',navItem:'管理员中心'},
  ]
  }
 }

路由:

export default new Router({
 routes: [{
  path: '*',
  redirect: '/findProject'
 }, {
  path: '/findProject',
  name: 'findProject',
  component: findProject
 }, {
  path: '/communityActivity',
  name: 'communityActivity',
  component: communityActivity
 }, {
  path: '/publishProject',
  name: 'publishProject',
  component: publishProject
 }, {
  path: '/personalCenter',
  name: 'personalCenter',
  component: personalCenter
 }, {
  path: '/manageCenter',
  name: 'manageCenter',
  component: manageCenter
 }]
})

使用菜单栏进行路由跳转有几个注意点:

1. 在el-menu加上router

2. index必须绑定路由的path,参考上面的例子,'/'不能少

3. default-active设为当前路由(this.$router.path),这样在路由变化的时候,对应的menu-item才会高亮。

拓展知识:vue项目中的路由配置方法

公司的项目使用vue脚手架来搭建,是属于后台管理系统。功能页比较多,就使用vue路由来进行跳转;

element-ui使用导航栏跳转路由的用法详解

个人比较习惯上面这种方式放置路由文件,并且使用懒加载的模式来配置,如下:

import Vue from 'vue'
import Router from 'vue-router'
//import Login from '.././views/login.vue'
//import NotFound from '.././views/404.vue'
//import Home from '.././views/index.vue'
Vue.use(Router)

export default new Router({
 mode: 'history',//去掉#号
 routes: [
 {
  path: '/login',
  name: 'Login',
  component: resolve => require(['../views/login.vue'],resolve)
 },
 {
  path: '/404',
  name: 'NotFound',
  component: resolve => require(['../views/404.vue'],resolve)
 },
 {
  path: '/',
  redirect: '/default'
 },
 {
  path: '/',
  name: 'Home',
  component: resolve => require(['../views/index.vue'],resolve),
  meta: {title: '自述文件'},
  children:[
  {
   path: '/default',
   component: resolve => require(['../components/default.vue'],resolve),
   meta: {title: '系统首页'}
  },
  {
   path: '/set',
   component: resolve => require(['../components/set.vue'],resolve),
   meta: {title: '设置'}
  },
  {
   path: '/user',
   component: resolve => require(['../components/user.vue'],resolve),
   meta: {title: '账户管理'}
  },
  {
   path: '/member',
   component: resolve => require(['../components/memberList/memberList.vue'],resolve),
   meta: {title: '会员列表'}
  },
  {
   path: '/baseCharts',
   component: resolve => require(['../components/charts/baseCharts.vue'],resolve),
   meta: {title: '会员分析'}
  }
  ]
 }
 ]
})

在main.js中使用路由进行配置:

element-ui使用导航栏跳转路由的用法详解

这样就可以在需要的地方使用路由了。

以上这篇element-ui使用导航栏跳转路由的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
Aug 19 Javascript
在JS中解析HTML字符串示例代码
Apr 16 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
May 09 Javascript
这样回答继承可能面试官更满意
Dec 10 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 Javascript
vue实现图书管理系统
Dec 29 Vue.js
详解微信小程序canvas圆角矩形的绘制的方法
Aug 22 #Javascript
解决element UI 自定义传参的问题
Aug 22 #Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 #Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
Aug 22 #Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 #Javascript
Vue动态获取width的方法
Aug 22 #Javascript
微信小程序调用摄像头隐藏式拍照功能
Aug 22 #Javascript
You might like
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
原生JS实现留言板
2020/03/26 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
纬创Java面试题笔试题
2014/10/02 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
个人授权委托书范本
2014/04/03 职场文书
需求分析说明书
2014/05/09 职场文书
2014年教研室工作总结
2014/12/06 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
个人催款函范文
2015/06/23 职场文书
董事长年会致辞
2015/07/29 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
一文解答什么是MySQL的回表
2022/08/05 MySQL