vue-router路由守衛(wèi)

vue-router導(dǎo)航鉤子

  • vue-router導(dǎo)航鉤子的主要作用是攔截導(dǎo)航,讓路由完成跳轉(zhuǎn)或者取消;
  • 導(dǎo)航鉤子分類:全局守衛(wèi)栽连、局部守衛(wèi)饿幅、路由獨(dú)享守衛(wèi)凡辱;

全局守衛(wèi)

  • 指的所有路由配置的組建都會(huì)被觸發(fā)的鉤子;
  • 鉤子函數(shù)執(zhí)行順序:beforeEach栗恩、beforeResolve透乾、afterEach;
// beforeEach:在路由跳轉(zhuǎn)前觸發(fā)摄凡,這個(gè)鉤子作用主要是用于登錄驗(yàn)證
const router = new VueRouter({ ... });
router.beforeEach((to, from, next) => {
  // do someting
});
/* beforeResolve:這個(gè)鉤子和beforeEach類似续徽,也是路由跳轉(zhuǎn)前觸發(fā),
   但它在在beforeEach和組件內(nèi)beforeRouteEnter之后亲澡,afterEach之前調(diào)用钦扭。
*/
// afterEach:和beforeEach相反,它是在路由跳轉(zhuǎn)完成之后觸發(fā)
router.afterEach((to, from) => {
  // do someting
});

局部守衛(wèi)

  • 組件內(nèi)執(zhí)行的鉤子函數(shù)床绪,相當(dāng)于為配置路由的組件添加的生命周期鉤子函數(shù)客情;
  • 鉤子函數(shù)執(zhí)行順序:beforeRouteEnter、beforeRouteUpdate癞己、beforeRouteLeave膀斋;
const comp = {
  template: `<div>This is file</div>`,
  beforeRouteEnter(to, from, next) {
    // do someting
    // 在渲染該組件的對(duì)應(yīng)路由被 confirm 前調(diào)用
  },
  beforeRouteUpdate(to, from, next) {
    // do someting
    // 在當(dāng)前路由改變,但是依然渲染該組件是調(diào)用
  },
  beforeRouteLeave(to, from ,next) {
    // do someting
    // 導(dǎo)航離開該組件的對(duì)應(yīng)路由時(shí)被調(diào)用
  }
}

路由獨(dú)享守衛(wèi)

  • 單個(gè)路由配置的時(shí)候也可以設(shè)置的鉤子函數(shù)痹雅,且只能在這個(gè)路由下起作用仰担;
  • 它只有一個(gè)鉤子函數(shù)beforeEnter;
cont router = new VueRouter({
  routes: [
  {
    path: '/file',
    component: File,
    beforeEnter: (to, from ,next) => {
      // do someting
    }
  }
  ]
});

組件路由跳轉(zhuǎn) - A路由–>B路由流程解析(局部-全局-獨(dú)享-局部-全局)

  • 在A組件里調(diào)用離開守衛(wèi)绩社,A組件中的beforeRouteLeave摔蓝;
  • 調(diào)用全局的beforeEach守衛(wèi), router.beforeEach愉耙;
  • 再執(zhí)行B路由配置里調(diào)用beforeEnter贮尉;
  • 再執(zhí)行B組件的進(jìn)入守衛(wèi),B組件中beforeRouteEnter朴沿;
  • 調(diào)用全局的beforeResolve守衛(wèi)(2.5+)猜谚,router.beforeResolve;
  • 導(dǎo)航被確認(rèn)赌渣;
  • 調(diào)用全局的afterEach鉤子:router.afterEach魏铅;
  • 觸發(fā)DOM更新。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坚芜,一起剝皮案震驚了整個(gè)濱河市沦零,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌货岭,老刑警劉巖路操,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疾渴,死亡現(xiàn)場離奇詭異,居然都是意外死亡屯仗,警方通過查閱死者的電腦和手機(jī)搞坝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魁袜,“玉大人桩撮,你說我怎么就攤上這事》宓” “怎么了店量?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鞠呈。 經(jīng)常有香客問我融师,道長,這世上最難降的妖魔是什么蚁吝? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任旱爆,我火速辦了婚禮,結(jié)果婚禮上窘茁,老公的妹妹穿的比我還像新娘怀伦。我一直安慰自己,他們只是感情好山林,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布房待。 她就那樣靜靜地躺著,像睡著了一般驼抹。 火紅的嫁衣襯著肌膚如雪桑孩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天砂蔽,我揣著相機(jī)與錄音洼怔,去河邊找鬼署惯。 笑死左驾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的极谊。 我是一名探鬼主播诡右,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼轻猖!你這毒婦竟也來了帆吻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤咙边,失蹤者是張志新(化名)和其女友劉穎桦锄,沒想到半個(gè)月后揭措,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體檀训,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年淑蔚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愕撰。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刹衫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搞挣,到底是詐尸還是另有隱情带迟,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布囱桨,位于F島的核電站仓犬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蝇摸。R本人自食惡果不足惜婶肩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望貌夕。 院中可真熱鬧律歼,春花似錦、人聲如沸啡专。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽们童。三九已至畔况,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慧库,已是汗流浹背跷跪。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留齐板,地道東北人吵瞻。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像甘磨,于是被迫代替她去往敵國和親橡羞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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