概念
路由守衛(wèi),官網(wǎng)也叫導(dǎo)航守衛(wèi),所謂導(dǎo)航,就是路由正在發(fā)生變化
路由守衛(wèi),主要就是用來(lái)通過(guò)跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航,在導(dǎo)航過(guò)程中,有三種方式可以植入導(dǎo)航
全局守衛(wèi)
路由獨(dú)享
路由組件中
1.全局守衛(wèi):
全局前置守衛(wèi)beforeEach
全局解析守衛(wèi)
全局后置守衛(wèi)
2.路由獨(dú)享
beforeEnter
一般用處就是當(dāng)不需要全局路由守衛(wèi)時(shí),只需要對(duì)一個(gè)路由規(guī)則進(jìn)行守衛(wèi)時(shí)使用,看具體場(chǎng)景,開發(fā)中,一般全局前置守衛(wèi)用的比較多
3.組件內(nèi)的守衛(wèi)
在組件的配置選項(xiàng)中定義的的鉤子函數(shù)
beforeRouteEnter
在組件內(nèi)配置的 觸發(fā)在beforeEnter之前
不能獲取該組件的實(shí)例對(duì)象this,因?yàn)榇耸匦l(wèi)在執(zhí)行前,組件實(shí)例還沒(méi)有被創(chuàng)建
beforeRouteUpdate
在動(dòng)態(tài)路由的時(shí)候,參數(shù)發(fā)生變化時(shí)觸發(fā)
beforeRouteLeave
當(dāng)離開時(shí)第一個(gè)觸發(fā)
也就是導(dǎo)航離開這個(gè)組件的對(duì)應(yīng)路由時(shí)被調(diào)用.可以訪問(wèn)組件實(shí)例this
守衛(wèi)參數(shù)解析
每個(gè)守衛(wèi)方法都接收是三個(gè)參數(shù) to from next()
1.to
即將去的目標(biāo) 通俗來(lái)說(shuō)就是到哪里去
2.from
即將離開的路由 通俗來(lái)說(shuō)就是從哪里來(lái)
3.next ()
是一個(gè)方法,必須調(diào)用,一定要調(diào)用這個(gè)方法來(lái)解析,執(zhí)行效果依賴next方法的調(diào)用參數(shù)
注意使用時(shí),一定要保證不要造成死循環(huán)
此函數(shù)的用法
next() 進(jìn)行下一個(gè),執(zhí)行下一步
next(false) 阻止當(dāng)前的導(dǎo)航
next(’/’)后者next({path:’/’})
????????跳轉(zhuǎn)到一個(gè)不同的地址,當(dāng)前的導(dǎo)航中斷,跳轉(zhuǎn)到一個(gè)新的導(dǎo)航
next(error) 如果傳入的參數(shù)是一個(gè)Error實(shí)例,導(dǎo)航終止,并該錯(cuò)誤會(huì)傳遞給router.onError()注冊(cè)過(guò)的回調(diào)