鍍金池/ 問答/HTML/ vue的router中函數(shù)執(zhí)行問題

vue的router中函數(shù)執(zhí)行問題

我想在我指定的頁面做權(quán)限檢查,在 router 中的 index.js 中 寫了代碼

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

if(to.meta.requireAuth){
   //這里拉的 api接口 執(zhí)行用戶等級(jí)判斷,把用戶等級(jí) 存儲(chǔ)到 session
   sessionStorage.setItem("flag",response.data.flag)
   next()
}else{
    next()
}

}

我在 需要進(jìn)行 鑒權(quán)的頁面 打印這個(gè) session

created(){

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

}

問題是: 當(dāng)我登錄以后 第一次點(diǎn)擊 這個(gè)鑒權(quán)頁面 這個(gè) session 是沒有的, 當(dāng)我點(diǎn)了其他頁面 在點(diǎn) 回來這個(gè)頁面 就有了,這個(gè) 我 beforeEach 用的不對(duì)么?

想請(qǐng)教一下, 這個(gè)是什么問題造成的!

回答
編輯回答
情皺

created是在beforeEach之前執(zhí)行的,所以你第一次到鑒權(quán)頁面,sessionStorage里面沒有放進(jìn)去,點(diǎn)了其他頁面會(huì)把session放進(jìn)去,再回來就有了

2017年9月29日 02:47
編輯回答
葬憶

setitem方法放在watch函數(shù)里面監(jiān)聽頁面變化,變化了就執(zhí)行保存,而不是在before監(jiān)聽

2018年2月26日 03:52