权限判断添加路由

104 阅读1分钟

原文

www.yisu.com/zixun/30845… 问题

(1)vuex中数据存储在内存中,刷新后失效需要重新获取。因此会出现动态页面失效问题。我们需要根据是否为刷新页面来重新加载即可。

(2)进入动态加载的页面,然后再刷新,也会出现上面的情况

解决方法

netRoutes是全局路由列表 generateRoutes是获取路由列表接口数据方法,return返回路由表,所以我直接接收了

在router的全局导航守卫beforeEach中设置,根据vuex中是否有list 来判断是否为刷新页面,如果有那么是第一次登陆, 如果没有,那么就为刷新页面,需要重新执行即可。

 if (store.state.permission.netRoutes.length === 0) {
    const accessRoutes = await store.dispatch("permission/generateRoutes");
    accessRoutes.forEach(el => {
      router.addRoute("Home", el);
    });
  
    console.log(accessRoutes);
  } else {
    
    console.log(6);
    next();
  }