使用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 相关文章推荐
JavaScript模板入门介绍
Sep 26 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
Spring MVC中Ajax实现二级联动的简单实例
Jul 06 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
vue 计时器组件的实现代码
Sep 14 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 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 网页过期时间的控制代码
2009/06/29 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
python实现简单购物商城
2016/05/21 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python爬虫 正则表达式解析
2019/09/28 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
广州盈通面试题
2015/12/05 面试题
借款协议书范本
2014/04/22 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS