vue的router中函数执行问题

我想在我指定的页面做权限检查,在 router 中的 index.js 中 写了代码

router.beforeEach((to, from, next) => {

if(to.meta.requireAuth){
   //这里拉的 api接口 执行用户等级判断,把用户等级 存储到 session
   sessionStorage.setItem("flag",response.data.flag)
   next()
}else{
    next()
}

}

我在 需要进行 鉴权的页面 打印这个 session

created(){

console.log(sessionStorage.getItem("flag"))

}

问题是: 当我登录以后 第一次点击 这个鉴权页面 这个 session 是没有的, 当我点了其他页面 在点 回来这个页面 就有了,这个 我 beforeEach 用的不对么?

想请教一下, 这个是什么问题造成的!

阅读 3.3k
2 个回答

created是在beforeEach之前执行的,所以你第一次到鉴权页面,sessionStorage里面没有放进去,点了其他页面会把session放进去,再回来就有了

setitem方法放在watch函数里面监听页面变化,变化了就执行保存,而不是在before监听

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题