我的项目需要用到权限控制:
举个例子:
用户'1'可以访问页面a和页面b,无法访问页面c和页面d。
用户'2'可以访问页面c和页面d,无法访问页面a和页面b。
我觉得可以使用 vue-router addRoutes()
方法去实现:
下面是比较核心的 login.vue
里面的代码:
// more code
// User login success
sessionStorage.setItem('user', JSON.stringify(user));
// From server get the routes data
getRoutes().then(data => {
// Routes data save in to sessionStorage
sessionStorage.setItem('routes', JSON.stringify(data.routes));
// Format data && created vue Router object
let routes = this.routeCreater(data.routes);
// addRoutes
this.$router.addRoutes(routes);
this.$router.push({ path: '/Index' });
})
// more code
登陆之后路由正常工作,但如果我刷新此页面(按“F5”键)。使用addRoutes()
动态添加的路由都会失效,不能访问了。
新人求助,谢谢!
我也遇到了,我是将
vuex
保存到localstorage
中我使用了外部定义一个变量的方式来解决刷新就重新加载