使用element-ui的el-menu导航选中后刷新页面保持当前选中状态


Posted in Javascript onJuly 19, 2019

具体代码如下所示:

<el-menu :default-active=‘$route.path‘ :router=‘true‘ :unique-opened=‘true‘ :default-openeds="defaultOpeneds" 



background-color="#bd1e22" text-color="#fff" active-text-color="#ffd04b"> 








//router当导航激活时允许以index作为路由进行页面的跳转,$route.path当前路由对象的路径,字符串,绝对路径 








//unique-opened只允许有一个下拉菜单处于打开的状态 








//使用default-active来实现当前菜单激活的选项




//default-openeds当前打开的 sub-menu 的 index 的数组
<el-menu-item index=‘/home‘>首页</el-menu-item>
      <el-submenu>
       <template slot="title">
        <i class=‘‘></i><span>导航一</span>
       </template>
       <el-menu-item index=‘/first/page1‘>
        <template slot="title">
         <i class=‘‘></i><span>选项一</span>
        </template>
       </el-menu-item>
       <el-menu-item index=‘/first/page2‘>
        <template slot="title">
         <i class=‘‘></i><span>选项二</span>
        </template>
       </el-menu-item>
      </el-submenu>
    </el-menu
>
mounted(){
      let path = this.$route.path;
      this.navConfig = [
        {index:'1',path:['/system/aa','/system/bb','/system/cc']},
      ];
      let thisNav = this.navConfig.find(item =>{
        return item.path.includes(path);
      });
      this.defaultOpeneds = [thisNav.index];
    }

ps:下面看下vue Element-ui el-menu 左侧导航条

<template>
 <!--实现左侧导航条动态渲染(三级)-->
 <el-menu class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" :collapse="isCollapse" router unique-opened
 background-color="#545c64"
 text-color="#fff"
 active-text-color="#ffd04b">
 <el-menu-item index="/home/main">
 <i class="el-icon-document"></i>
 <span slot="title">首页</span>
 </el-menu-item>
 <el-submenu v-for="(item,index) in content" :key="item.id" :data="item" v-if="item.children.length>0&&item.level==1" :index="item.linkname">
 <template slot="title">
 <i class="el-icon-location"></i>
 <span slot="title">{{item.linkname}}</span>
 </template>
 <el-submenu v-for="(child,seq) in item.children" :data="child" v-if="item.id==child.parentid&&child.children.length>0&&child.level==2" :key="child.id" :index="child.linkname">
 <span slot="title">{{child.linkname}}</span>
 <el-menu-item v-for="three in child.children" :data="three" v-if="child.id==three.parentid&&child.children.length!=0&&three.level==3" :key="three.id" :index="three.link">
 <span slot="title">{{three.linkname}}</span>
 </el-menu-item>
 </el-submenu>
 <!--2无子级显示-->
 <el-menu-item v-for="(child,seq) in item.children" :data="child" v-if="item.id==child.parentid&&child.children.length==0&&child.level==2" :key="child.id" :index="child.link">
 <span slot="title">{{child.linkname}}</span>
 </el-menu-item>
 </el-submenu>
 <!--1无子级显示且不支持点击事件-->
 <el-menu-item v-for="(item,index) in content" :key="item.id" :data="item" v-if="item.children.length==0&&item.level==1" :index="item.linkname" :disabled="item.children.length==0 ? true : false ">
 <i class="el-icon-setting"></i>
 <span slot="title">{{item.linkname}}</span>
 </el-menu-item>
 </el-menu>
 </div>
</template>
<script>
import axios from "axios";
import $ from 'jquery';
export default {
 data() {
 return {
 content: [],
 isCollapse: false,
 defaultProps: {
 children: 'children',
 label: 'linkname'
 }
 };
 },
 mounted(){
 var _self = this;
 axios.get('https://5b90a18b3ef10a001445d08e.mockapi.io/api/v1/resources')
 .then(function (response) {
 _self.content = returnZhData(response.data);
 })
 .catch(function (error) {
 console.log(error);
 });
 },
 methods: {
 handleOpen(key, keyPath) {
 console.log(key, keyPath);
 },
 handleClose(key, keyPath) {
 console.log(key, keyPath);
 },
 handleNodeClick(content) {
 console.log(content);
 }
 }
}
function returnZhData(data){
 var arrone=[];
 $.each(data, function(index,one) {
 if(one['level'] == 1){
 arrone.push(one);
 var arrtwo=[];
 $.each(data, function(index,two) {
 if(two['level'] == 2 && two['parentid']==one['id']){
 arrtwo.push(two);
 var arrthree=[];
 $.each(data, function(index,three) {
 if(three['level'] == 3 && three['parentid']==two['id']){
 arrthree.push(three);
 }
 });
 two.children=arrthree;
 }
 });
 one.children = arrtwo;
 }
 });
 return arrone;
}
</script>
<style>
.el-menu-vertical-demo:not(.el-menu--collapse) {
 width: auto;
 min-height: 400px;
}
</style>

总结

以上所述是小编给大家介绍的使用element-ui的el-menu导航选中后刷新页面保持当前选中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
js数组依据下标删除元素
Apr 14 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
基于jQuery实现的无刷新表格分页实例
Feb 17 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
原生JS实现列表子元素顺序反转的方法分析
Jul 02 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue实战教程之仿肯德基宅急送App
Jul 19 #Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 #Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
Jul 19 #Javascript
vue-cli 项目打包完成后运行文件路径报错问题
Jul 19 #Javascript
Smartour 让网页导览变得更简单(推荐)
Jul 19 #Javascript
bootstrap Table实现合并相同行
Jul 19 #Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 #Javascript
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
解决vue组件中click事件失效的问题
2019/11/09 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
python实现mean-shift聚类算法
2020/06/10 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
外企测试工程师面试题
2015/02/01 面试题
垃圾回收的优点和原理
2014/05/16 面试题
J2EE模式面试题
2016/10/11 面试题
采购主管岗位职责
2014/02/01 职场文书
热门专业求职信
2014/05/24 职场文书
企业文化宣传标语
2014/06/09 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
运动会开幕式主持词
2015/07/01 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
如何使用pdb进行Python调试
2021/06/30 Python