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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
jquery实用代码片段集合
Aug 12 Javascript
js实现拉伸拖动iframe的具体代码
Aug 03 Javascript
jQuery Ajax使用实例
Apr 16 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
Jun 17 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
Nov 10 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
详解javascript中的变量提升和函数提升
May 24 Javascript
小程序云开发实战小结
Oct 25 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
php 显示指定路径下的图片
2009/10/29 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
javascript中call和apply的用法示例分析
2015/04/02 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python功能键的读取方法
2015/05/28 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
12步教你理解Python装饰器
2016/02/25 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
金融行业务员的自我评价
2013/12/13 职场文书
文秘求职信范文
2014/04/10 职场文书
歌剧魅影观后感
2015/06/05 职场文书
员工担保书范本
2015/09/22 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技