Vue 路由鉤子

路由鉤子主要作用是攔截導(dǎo)航,讓他完成跳轉(zhuǎn)或者取消跳轉(zhuǎn)。比如登錄界面輸入了賬號、密碼,主界面需要展示賬號,但是你沒有把 “賬號” 這個(gè)字段保存到 vuex 或者 session 里面,直接跳轉(zhuǎn)會(huì)導(dǎo)致主界面顯示空白,這個(gè)時(shí)候你就需要一個(gè) beforeRouteLeave 路由鉤子,還沒有數(shù)據(jù)的情況下,禁止界面跳轉(zhuǎn),舉例子(偽代碼):

beforeRouteLeave(to,from,next){
  if('account' === ' '){
      next(false);
  }else{
    next();
  };
};

大概就是這么個(gè)意思,參數(shù) to ——是要跳轉(zhuǎn)到的界面,from —— 從哪個(gè)界面離開,next() —— 是否允許跳轉(zhuǎn),如果是 next(false) ——禁止跳轉(zhuǎn),next({name:LOGIN}) —— 跳轉(zhuǎn)到登錄界面(需要自己手動(dòng)配置路由),next() 或者 next(true) ——允許跳轉(zhuǎn)。

路由鉤子的主要實(shí)現(xiàn)方式有三種

1. 全局實(shí)現(xiàn)

1.1 使用 router.beforeEach 注冊一個(gè)全局的 before 鉤子:

var routes = [{
  path:'/route1',
  name:'route1',
  component:() = > import('./index.vue')  //調(diào)用的時(shí)候再開始加載
}]
 const router = new VueRouter({ 
    routes;
  })
router.beforeEach((to, from, next) => {
  next(false);
})

1.2 全局的 after 鉤子,(after 鉤子沒有 next 方法,不能改變導(dǎo)航)

2. 路由獨(dú)享

2.1 配置路由的時(shí)候可以直接增加 beforeEnter,功能類似 before。

var routes = [{
  path:'/route1',
  name:'route1',
  component:() = > import('./index.vue')  //調(diào)用的時(shí)候再開始加載
  beforeEnter: (to, from, next) => {
       next();
  }

}]

3. 組件內(nèi)實(shí)現(xiàn)的鉤子

3.1 beforeRouteEnter
在導(dǎo)航確認(rèn)之前調(diào)用,新組件的 beforeCreate 之前調(diào)用,所以特別注意它的 this 是 undefined

3.2 beforeRouteUpdate

用法:點(diǎn)擊更新二級導(dǎo)航時(shí)調(diào)用。

3.3 beforeRouteLeave
離開當(dāng)前界面之前調(diào)用,用法:1. 需要的保存或者刪除的數(shù)據(jù)沒有完成當(dāng)前操作等等原因,禁止界面跳轉(zhuǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • vue2有著深度繼承的路由插件,即:vue-router,其中文的API地址。 vue-router與其他的路由(...
    白水螺絲閱讀 17,688評論 0 17
  • —— “導(dǎo)航”表示路由正在發(fā)生改變。 路由鉤子函數(shù)有三種: 1:全局鉤子: beforeEach、 ...
    G_弦上的詠嘆調(diào)閱讀 27,932評論 1 11
  • 學(xué)習(xí)目的 學(xué)習(xí)Vue的必備技能,必須 熟練使用 Vue-router,能夠在實(shí)際項(xiàng)目中運(yùn)用。 Vue-rout...
    _1633_閱讀 92,911評論 3 58
  • VUE Vue :數(shù)據(jù)驅(qū)動(dòng)的M V Vm框架 m :model(后臺提供數(shù)據(jù)),v :view(頁面),vM(模板...
    wudongyu閱讀 5,528評論 0 11
  • 恭賀同官茯韻茶樓開張暨銅川市養(yǎng)生茶文化協(xié)會(huì)揭牌儀式 文/惠芝蘭心 日歷新翻送舊年,冬寒侵骨朔風(fēng)天。 東山龍柏春芽暖...
    惠芝蘭心閱讀 414評論 0 0

友情鏈接更多精彩內(nèi)容