使用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 相关文章推荐
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
20170918 前端开发周报之JS前端开发必看
Sep 18 Javascript
JS和Canvas实现图片的预览压缩和上传功能
Mar 30 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 Javascript
video.js添加自定义组件的方法
Dec 09 Javascript
微信小程序canvas实现签名功能
Jan 19 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 Javascript
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
php批量删除数据
2007/01/18 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
详解Python学习之安装pandas
2019/04/16 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python爬取网页信息的示例
2020/09/24 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
简述数据库的设计过程
2015/06/22 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
《秋游》教学反思
2014/04/24 职场文书
集中整治工作方案
2014/05/01 职场文书
先进个人推荐材料
2014/12/29 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python