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 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
js 3秒后跳转页面的实现代码
Mar 10 Javascript
js读取cookie方法总结
Oct 31 Javascript
Js+php实现异步拖拽上传文件
Jun 23 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
js querySelector() 使用方法
Dec 21 Javascript
jquery实现超简单的瀑布流布局【推荐】
Mar 08 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
深入理解ES6中let和闭包
Feb 22 Javascript
Canvas实现微信红包照片效果
Aug 21 Javascript
详解微信小程序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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
php 多关键字 高亮显示实现代码
2012/04/23 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
利用php生成验证码
2017/02/23 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
为指定元素增加样式的js代码
2009/12/09 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
python使用any判断一个对象是否为空的方法
2014/11/19 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
技术副厂长岗位职责
2013/12/26 职场文书
优秀护士获奖感言
2014/02/20 职场文书
2014年商场工作总结
2014/11/22 职场文书
前台文员岗位职责
2015/02/04 职场文书
初中教师个人工作总结
2015/02/10 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
python自动化八大定位元素讲解
2021/07/09 Python
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js