詳解vue-router 2.0 常用基礎(chǔ)知識(shí)點(diǎn)之導(dǎo)航鉤子
導(dǎo)航鉤子
vue-router 提供的導(dǎo)航鉤子主要用來(lái)攔截導(dǎo)航,讓它完成跳轉(zhuǎn)或取消。有多種方式可以在路由導(dǎo)航發(fā)生時(shí)執(zhí)行鉤子:全局的, 單個(gè)路由獨(dú)享的, 或者組件級(jí)的。
全局鉤子
const router = new VueRouter({ ... })
router.beforeEach((to, from, next) => {
// do something
next();
});
router.afterEach((to, from, next) => {
console.log(to.path);
});
每個(gè)鉤子方法接收三個(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ù)。
- next(): 進(jìn)行管道中的下一個(gè)鉤子。如果全部鉤子執(zhí)行完了,則導(dǎo)航的狀態(tài)就是confirmed (確認(rèn)的)。
- next(false): 中斷當(dāng)前的導(dǎo)航。如果瀏覽器的 URL 改變了(可能是用戶手動(dòng)或者瀏覽器后退按鈕),那么 URL 地址會(huì)重置到 from
- 路由對(duì)應(yīng)的地址。
- next('/') 或者 next({ path: '/' }): 跳轉(zhuǎn)到一個(gè)不同的地址。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航。
確保要調(diào)用 next方法,否則鉤子就不會(huì)被 resolved。
組件內(nèi)的鉤子
let fromPath = '';
export default{
beforeRouteEnter (to, from, next) {
// 在渲染該組件的對(duì)應(yīng)路由被 confirm 前調(diào)用
// 不!能!獲取組件實(shí)例 `this`
// 因?yàn)楫?dāng)鉤子執(zhí)行前,組件實(shí)例還沒(méi)被創(chuàng)建
fromPath = from.path;
next();
},
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue-router配合ElementUI實(shí)現(xiàn)導(dǎo)航的實(shí)例
- VueRouter導(dǎo)航守衛(wèi)用法詳解
- vue實(shí)現(xiàn)nav導(dǎo)航欄的方法
- vue實(shí)現(xiàn)導(dǎo)航欄效果(選中狀態(tài)刷新不消失)
- vue 掛載路由到頭部導(dǎo)航的方法
- vue2導(dǎo)航根據(jù)路由傳值,而改變導(dǎo)航內(nèi)容的實(shí)例
- vue-router路由與頁(yè)面間導(dǎo)航實(shí)例解析
- vue router仿天貓底部導(dǎo)航欄功能
- 詳解VueRouter進(jìn)階之導(dǎo)航鉤子和路由元信息
- 詳解使用Vue Router導(dǎo)航鉤子與Vuex來(lái)實(shí)現(xiàn)后退狀態(tài)保存
- vue-router 導(dǎo)航鉤子的具體使用方法
- 詳解vue.js移動(dòng)端導(dǎo)航navigationbar的封裝
- vue2.0實(shí)現(xiàn)導(dǎo)航菜單切換效果
- vue 和vue-touch 實(shí)現(xiàn)移動(dòng)端左右導(dǎo)航效果(仿京東移動(dòng)站導(dǎo)航)
- 非常實(shí)用的vue導(dǎo)航鉤子
- vue2.0 elementUI制作面包屑導(dǎo)航欄
相關(guān)文章
詳解vuex中action何時(shí)完成以及如何正確調(diào)用dispatch的思考
這篇文章主要介紹了詳解vuex中action何時(shí)完成以及如何正確調(diào)用dispatch的思考,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
vue3(optionApi)使用Element Plus庫(kù)沒(méi)有效果的解決方式
這篇文章主要介紹了vue3(optionApi)使用Element Plus庫(kù)沒(méi)有效果的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue ElementUI實(shí)現(xiàn)異步加載樹(shù)
這篇文章主要為大家詳細(xì)介紹了vue ElementUI實(shí)現(xiàn)異步加載樹(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
vue使用swiper插件實(shí)現(xiàn)輪播圖的示例
這篇文章主要介紹了vue使用swiper插件實(shí)現(xiàn)輪播圖的示例,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-05-05
VUE跨域問(wèn)題Access to XMLHttpRequest at
今天發(fā)現(xiàn)一個(gè)錯(cuò)誤,VUE發(fā)送請(qǐng)求的時(shí)候不能請(qǐng)求到正確數(shù)據(jù),VUE跨域問(wèn)題Access to XMLHttpRequest at,本文就詳細(xì)的來(lái)介紹一下解決方法,感興趣的可以了解一下2022-05-05

