vue-admin-template后台管理系统在页面刷新后MenuBar显示异常

问题重现:

在利用Vue-Router根据权限动态显示导航栏实现MenuBar的动态显示后,出现了一个问题:
每当页面刷新后,MenuBar就会显示异常。经排查,发现是由于vuex中store保存的数据,刷新页面之后被清空,MenuBar无法获取到当前的用户权限导致。

针对上述问题的解决方案:将state中的数据放入浏览器会话存储空间(sessionStorage)

Step1:更改state的获取方式

state: sessionStorage.getItem('state') ? JSON.parse(sessionStorage.getItem('state')) : {
    device: "",// 当前登录设备
    signed_id: 0,// 当前登录人员id
    signed_authorize: "",// 当前登录人员权限
    patent_id: 0,// 待查看的专利id
  },

Step2:在进行登录校验后,将当前权限写入state,然后存入sessionStorage

// 教师权限
this.get_autorize("教师");
sessionStorage.setItem("state", JSON.stringify(this.$store.state));

Step3:在App.vue中监听浏览器刷新

import store from "@/store";

export default {
  name: "App",
  mounted() {
    window.addEventListener("unload", this.saveState);
  },
  methods: {
    saveState() {
      sessionStorage.setItem("state", JSON.stringify(this.$store.state));
    },
  },
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJR10byh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值