蕭十郎
2018-07-06 18:18:17
vue路由守衛(wèi)axios請求數(shù)據(jù)需求:進入頁面之前,axios請求數(shù)據(jù),根據(jù)判斷,跳轉(zhuǎn)到對應路由。做法:1、想在組件路由守衛(wèi)beforeRouteEnter
axios請求數(shù)據(jù),axios是獲取不到的,報錯。2、在created請求數(shù)據(jù)跳轉(zhuǎn),這樣頁面會先顯示出來,效果不好。3、寫個空白頁請求數(shù)據(jù)跳轉(zhuǎn)。。。但目前不想這樣搞請問:還有其他方法嗎?
4 回答

梵天001
TA貢獻23條經(jīng)驗 獲得超5個贊
針對 axios 獲取不到,你是想獲取全局的 axios 實例,因為 鉤子函數(shù)中不能使用 this ? 組件還沒創(chuàng)建,當然獲取不到,可以使用 @慕村9548890?提供的方式:
beforeEnter(to, from, next){
// 組件創(chuàng)建后回調(diào)
next(vm => {
// vm 相當于 this,,這個時候組件已經(jīng)創(chuàng)建
vm.$axios.get(...)...
})
}

喵喵時光機
TA貢獻1846條經(jīng)驗 獲得超7個贊
做法1 可以在router.js import axios 實例
其他辦法:
可以使用Router.routes的beforeEnter(路由獨享的守衛(wèi))
可以使用beforeRouteEnter(組件內(nèi)的守衛(wèi))
調(diào)用全局的 beforeResolve 守衛(wèi)

慕村9548890
TA貢獻1884條經(jīng)驗 獲得超4個贊
最后在router.js里面引入axios,然后使用原型指向,因為直接使用axios.get會報protocol的錯誤,所以使用原型
- 4 回答
- 0 關(guān)注
- 1844 瀏覽
添加回答
舉報
0/150
提交
取消