vue-router 導(dǎo)航守衛(wèi)的總結(jié)

總結(jié):

1、導(dǎo)航守衛(wèi)那些?

全局 afterEach、beforeEach 狭郑、beforeResolve

路由beforeEnter

組件內(nèi):beforeRouteLeave 、beforeRouteUpdate 汇在、beforeRouteEnter

2:導(dǎo)航守衛(wèi)中的next的用處翰萨?next的作用,使導(dǎo)航守衛(wèi)隊(duì)列的繼續(xù)向下迭代

3:為什么afterEach守衛(wèi)沒(méi)有next糕殉?afterEach根本不在導(dǎo)航守衛(wèi)隊(duì)列內(nèi)亩鬼,沒(méi)有迭代的next

4:beforeEach是否可以疊加?beforeEach是可以疊加的阿蝶,所有的全局前置守衛(wèi)按順序存放在beforeHooks的數(shù)組里面


全局導(dǎo)航守衛(wèi)

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

// 導(dǎo)航守衛(wèi):當(dāng)用戶沒(méi)有登錄時(shí)辛孵,限制用戶不能訪問(wèn)某些頁(yè)面等?

??// ...})

router.afterEach((to, from) => {

??// ...})

路由導(dǎo)航守衛(wèi)

beforeEnter: (to, from, next) => {

console.log('%c 路由獨(dú)享守衛(wèi)', 'color:blue')

console.log(to, from)

next()

}

組件內(nèi)的

beforeRouteEnter (to, from, next) {

????// 在渲染該組件的對(duì)應(yīng)路由被 confirm 前調(diào)用

????// 不!能赡磅!獲取組件實(shí)例 `this`

? ? // 因?yàn)楫?dāng)守衛(wèi)執(zhí)行前魄缚,組件實(shí)例還沒(méi)被創(chuàng)建

可以通過(guò)以下方式訪問(wèn)組件實(shí)例

? ?next(vm => {

? ? ? // 通過(guò) `vm` 訪問(wèn)組件實(shí)例

? ? ?})

??},

??beforeRouteUpdate (to, from, next) {

????// 在當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用

????// 舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id冶匹,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候习劫,

????// 由于會(huì)渲染同樣的 Foo 組件,因此組件實(shí)例會(huì)被復(fù)用嚼隘。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用诽里。

????// 可以訪問(wèn)組件實(shí)例 `this`

??},

??beforeRouteLeave (to, from, next) {

????// 導(dǎo)航離開(kāi)該組件的對(duì)應(yīng)路由時(shí)調(diào)用

????// 可以訪問(wèn)組件實(shí)例 `this`

??}

每個(gè)守衛(wèi)方法接收三個(gè)參數(shù):

to: Route: 即將要進(jìn)入的目標(biāo)?路由對(duì)象

from: Route: 當(dāng)前導(dǎo)航正要離開(kāi)的路由

next: Function: 一定要調(diào)用該方法來(lái)?resolve?這個(gè)鉤子。執(zhí)行效果依賴?next?方法的調(diào)用參數(shù)飞蛹。

? ? ?1谤狡、 next(): 進(jìn)行管道中的下一個(gè)鉤子。如果全部鉤子執(zhí)行完了卧檐,則導(dǎo)航的狀態(tài)就是?confirmed?(確認(rèn)? ? ? ? 的)墓懂。

? ? ?2、 next(false): 中斷當(dāng)前的導(dǎo)航霉囚。如果瀏覽器的 URL 改變了(可能是用戶手動(dòng)或者瀏覽器后退按鈕)捕仔,那么 URL 地址會(huì)重置到?from?路由對(duì)應(yīng)的地址。

? ? 3盈罐、 next('/')?或者?next({ path: '/' }): 跳轉(zhuǎn)到一個(gè)不同的地址榜跌。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航盅粪。

? ? ?4钓葫、next(error): (2.4.0+) 如果傳入?next?的參數(shù)是一個(gè)?Error?實(shí)例,則導(dǎo)航會(huì)被終止且該錯(cuò)誤會(huì)被傳遞給?router.onError()?注冊(cè)過(guò)的回調(diào)票顾。確保要調(diào)用?next?方法础浮,否則鉤子就不會(huì)被 resolved。


使用? ?當(dāng)用戶沒(méi)有登錄時(shí)库物,限制用戶不能訪問(wèn)某些頁(yè)面等?

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

? if (to.meta) {

? ? if (to.meta.title) {

? ? ? document.title = to.meta.title

? ? }

? } else {

? ? document.title = '我的項(xiàng)目'

? }

? if (to.matched.some(record => record.meta.requiresAuth)) {

? ? let user = store.getters.getUser

? ? if (!user.isSignIn) {

? ? ? next({

? ? ? ? path: '/login',

? ? ? ? replace: true,

? ? ? ? query: {

? ? ? ? ? redirect: to.fullPath

? ? ? ? }

? ? ? })

? ? }

? ? next()

? }

? next()

})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霸旗,一起剝皮案震驚了整個(gè)濱河市贷帮,隨后出現(xiàn)的幾起案子戚揭,更是在濱河造成了極大的恐慌,老刑警劉巖撵枢,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件民晒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡锄禽,警方通過(guò)查閱死者的電腦和手機(jī)潜必,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)沃但,“玉大人磁滚,你說(shuō)我怎么就攤上這事。” “怎么了垂攘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵维雇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我晒他,道長(zhǎng)吱型,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任陨仅,我火速辦了婚禮津滞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灼伤。我一直安慰自己触徐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布饺蔑。 她就那樣靜靜地躺著锌介,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猾警。 梳的紋絲不亂的頭發(fā)上孔祸,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音发皿,去河邊找鬼崔慧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛穴墅,可吹牛的內(nèi)容都是我干的惶室。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼玄货,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼皇钞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起松捉,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤夹界,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后隘世,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體可柿,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年丙者,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了复斥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡械媒,死狀恐怖目锭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤痢虹,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布键俱,位于F島的核電站,受9級(jí)特大地震影響世分,放射性物質(zhì)發(fā)生泄漏编振。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一臭埋、第九天 我趴在偏房一處隱蔽的房頂上張望踪央。 院中可真熱鬧,春花似錦瓢阴、人聲如沸畅蹂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)液斜。三九已至,卻和暖如春叠穆,著一層夾襖步出監(jiān)牢的瞬間少漆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工硼被, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留示损,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓嚷硫,卻偏偏與公主長(zhǎng)得像检访,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仔掸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • VUE Vue :數(shù)據(jù)驅(qū)動(dòng)的M V Vm框架 m :model(后臺(tái)提供數(shù)據(jù))脆贵,v :view(頁(yè)面),vM(模板...
    wudongyu閱讀 5,397評(píng)論 0 11
  • 前言 vue-router是什么:是vue.js官方的路由管理器和vue.js的核心深度的集成起暮,讓開(kāi)發(fā)者更加簡(jiǎn)單的...
    GUAN_one閱讀 3,709評(píng)論 0 2
  • 導(dǎo)航守衛(wèi) 導(dǎo)航守衛(wèi)主要用來(lái)通過(guò)跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航卖氨。 參數(shù)或查詢的改變并不會(huì)觸發(fā)進(jìn)入/離開(kāi)的導(dǎo)航守衛(wèi)。 1鞋怀、全...
    SailingBytes閱讀 1,174評(píng)論 1 3
  • 學(xué)習(xí)目的 學(xué)習(xí)Vue的必備技能双泪,必須 熟練使用 Vue-router持搜,能夠在實(shí)際項(xiàng)目中運(yùn)用密似。 Vue-rout...
    _1633_閱讀 92,088評(píng)論 3 58
  • 組件相關(guān)鉤子函數(shù): beforeCreate、created葫盼、beforeMount残腌、mounted、before...
    744354889606閱讀 19,091評(píng)論 0 37