当前位置: 首页 > news >正文

Element UI导航菜单刷新就复原问题解决方法~

1、首先要知道为什么一刷新就复原了,是因为default-active属性设置的是默认值,是一个死值,一旦刷新就会复原,造成高亮不能保持,那么怎么解决呢?

2、很简单,无需像一些博主一样绑定path。思路:既然一刷新就复原了,那么我们在切换的时候就将值存储在本地存储或vuex中呗。

方法一:本地存储

<el-menu:default-active="activeIndex2" class="el-menu-demo" mode="horizontal"@select="handleSelect" background-color="#545c64" text-color="#fff"active-text-color="#ffd04b"
><el-menu-item :index="String(index)" v-for="(item,index) in list" :key="item.id">{{ item.name }}</el-menu-item><el-submenu index="4"><template slot="title">我的工作台</template><el-menu-item index="4-1">设置</el-menu-item><el-menu-item index="4-2" >退出</el-menu-item></el-submenu>
</el-menu><script>
export default {name: "showTop",data() {return {list: [{name:"首页",id:0},{name:"商品",id:1},{name:"订单",id:2},{name:"会员",id:3},{name:"设置",id:4},{name:"管理员",id:5}],activeIndex2: null};},mounted(){if(localStorage.getItem('activeIndex2')){this.activeIndex2 =localStorage.getItem('activeIndex2')}else{this.activeIndex2 =String(this.list[0].id)}},methods: {// 顶部导航栏点击事件handleSelect(key, keyPath) {console.log(key,keyPath);// 解决element ui组件库中顶部导航栏刷新复原问题,也可存储在vuex中localStorage.setItem('activeIndex2',String(this.list[key].id))// 判断是否是退出按钮if(key=='4-2'){// 清空本地缓存的tokenlocalStorage.removeItem('token')// 跳转至登录页this.$router.push({name:'login'})}}},
};
</script>

方法二:vuex+本地存储

<el-menu:default-active="activeIndex2" class="el-menu-demo" mode="horizontal"@select="handleSelect" background-color="#545c64" text-color="#fff"active-text-color="#ffd04b"
><el-menu-item :index="String(index)" v-for="(item,index) in list" :key="item.id">{{ item.name }}</el-menu-item><el-submenu index="4"><template slot="title">我的工作台</template><el-menu-item index="4-1">设置</el-menu-item><el-menu-item index="4-2" >退出</el-menu-item></el-submenu>
</el-menu><script>
import { mapMutations} from 'vuex';
export default {name: "showTop",data() {return {list: [{name:"首页",id:0},{name:"商品",id:1},{name:"订单",id:2},{name:"会员",id:3},{name:"设置",id:4},{name:"管理员",id:5}],activeIndex2: null};},mounted(){if(localStorage.getItem('activeIndex2')){this.activeIndex2 =localStorage.getItem('activeIndex2')}else{this.activeIndex2 =String(this.list[0].id)}},methods: {...mapMutations(['setActiveIndex2']),// 顶部导航栏点击事件handleSelect(key, keyPath) {console.log(key,keyPath);// 存储到vuex中,但是要记住还需要在vuex中存储到本地存储中this.setActiveIndex2(String(this.list[key].id))// 判断是否是退出按钮if(key=='4-2'){// 清空本地缓存的tokenlocalStorage.removeItem('token')// 跳转至登录页this.$router.push({name:'login'})}}},
};
</script>

 

//store中的index.js
import Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)export default new Vuex.Store({state:{activeIndex:'',},mutations:{setActiveIndex2(state,e){state.activeIndex = ewindow.localStorage.setItem('activeIndex2',e)}},
})
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import router from '../router';
import store from '../store';
Vue.use(ElementUI);Vue.config.productionTip = falsenew Vue({router,store,render: h => h(App),
}).$mount('#app')

效果图:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Web安全(一)-靶场搭建过程-基于docker
  • 服务器端常见响应码
  • 38-1、HCIE补充实验:端口隔离 二层隔离三层互通+二层三层均隔离
  • 【Linux】重谈页表寻址|深入理解物理内存和页表的映射|页框|CPU|CR3|MMU
  • 大数据技术——实战项目:广告数仓(第四部分)
  • 2024半年度盘点 | 全球重大勒索软件攻击事件(非常详细)零基础入门到精通,收藏这一篇就够了
  • ISP代理与双ISP代理的区别
  • 【Kubernetes】Service 概念与实战
  • React 中 useEffect 语法详解
  • 人工智能在子宫内膜癌领域的研究进展|顶刊速递·24-08-12
  • QT移除窗体的最大化和最小化按钮
  • Unity Audio
  • 实验25.创建文件
  • linux中信号的相关概念
  • 利用QT和FFmpeg实现一个简单的视频播放器
  • [笔记] php常见简单功能及函数
  • 《剑指offer》分解让复杂问题更简单
  • Electron入门介绍
  • JAVA SE 6 GC调优笔记
  • javascript数组去重/查找/插入/删除
  • Nodejs和JavaWeb协助开发
  • Octave 入门
  • ReactNativeweexDeviceOne对比
  • vue.js框架原理浅析
  • Vue全家桶实现一个Web App
  • 电商搜索引擎的架构设计和性能优化
  • 构造函数(constructor)与原型链(prototype)关系
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 使用docker-compose进行多节点部署
  • 算法---两个栈实现一个队列
  • 写代码的正确姿势
  • 移动端 h5开发相关内容总结(三)
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • $L^p$ 调和函数恒为零
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (175)FPGA门控时钟技术
  • (7) cmake 编译C++程序(二)
  • (7)STL算法之交换赋值
  • (ZT)出版业改革:该死的死,该生的生
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (接口自动化)Python3操作MySQL数据库
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (原)本想说脏话,奈何已放下
  • (转)Oracle存储过程编写经验和优化措施
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • *p++,*(p++),*++p,(*p)++区别?
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET gRPC 和RESTful简单对比