vue-router的鉤子函數(shù)用法實(shí)例分析
本文實(shí)例講述了vue-router的鉤子函數(shù)用法。分享給大家供大家參考,具體如下:
vue路由鉤子大致可以分為三類(lèi):
1.全局鉤子
主要包括beforeEach和aftrEach,
beforeEach函數(shù)有三個(gè)參數(shù):
- to:router即將進(jìn)入的路由對(duì)象
- from:當(dāng)前導(dǎo)航即將離開(kāi)的路由
- next:Function,進(jìn)行管道中的一個(gè)鉤子,如果執(zhí)行完了,則導(dǎo)航的狀態(tài)就是 confirmed (確認(rèn)的);否則為false,終止導(dǎo)航。
afterEach函數(shù)不用傳next()函數(shù)
這類(lèi)鉤子主要作用于全局,一般用來(lái)判斷權(quán)限,以及以及頁(yè)面丟失時(shí)候需要執(zhí)行的操作,例如:
//使用鉤子函數(shù)對(duì)路由進(jìn)行權(quán)限跳轉(zhuǎn) router.beforeEach((to, from, next) => { const role = localStorage.getItem('ms_username'); if(!role && to.path !== '/login'){ next('/login'); }else if(to.meta.permission){ // 如果是管理員權(quán)限則可進(jìn)入,這里只是簡(jiǎn)單的模擬管理員權(quán)限而已 role === 'admin' ? next() : next('/403'); }else{ // 簡(jiǎn)單的判斷IE10及以下不進(jìn)入富文本編輯器,該組件不兼容 if(navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor'){ Vue.prototype.$alert('vue-quill-editor組件不兼容IE10及以下瀏覽器,請(qǐng)使用更高版本的瀏 覽器查看', '瀏覽器不兼容通知', { confirmButtonText: '確定' }); }else{ next(); } } })
2.單個(gè)路由里面的鉤子
主要用于寫(xiě)某個(gè)指定路由跳轉(zhuǎn)時(shí)需要執(zhí)行的邏輯
{ path: '/dashboard', component: resolve => require(['../components/page/Dashboard.vue'], resolve), meta: { title: '系統(tǒng)首頁(yè)' }, beforeEnter: (to, from, next) => { }, beforeLeave: (to, from, next) => { } },
3.組件路由
主要包括 beforeRouteEnter和beforeRouteUpdate ,beforeRouteLeave,這幾個(gè)鉤子都是寫(xiě)在組件里面也可以傳三個(gè)參數(shù)(to,from,next),作用與前面類(lèi)似.
beforeRouteEnter(to, from, next) { next(vm => { if ( vm.$route.meta.hasOwnProperty('auth_key') && vm.$route.meta.auth_key != '' ) { if (!vm.hasPermission(vm.$route.meta.auth_key)) { vm.$router.replace('/admin/noPermission') } } }) },
希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
VUE的history模式下除了index外其他路由404報(bào)錯(cuò)解決辦法
在本篇文章里小編給大家分享的是關(guān)于VUE的history模式下除了index外其他路由404報(bào)錯(cuò)解決辦法,對(duì)此有需要的朋友們可以學(xué)習(xí)下。2019-08-08vscode使用Eslint+Prettier格式化代碼的詳細(xì)操作
這篇文章主要介紹了vscode使用Eslint+Prettier格式化代碼,本文通過(guò)圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08vue使用axios訪問(wèn)本地json文件404問(wèn)題及解決
這篇文章主要介紹了vue使用axios訪問(wèn)本地json文件404問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Vue3新?tīng)顟B(tài)管理工具實(shí)例詳解
Vue3公布曾經(jīng)有一段時(shí)間了,它采納了新的響應(yīng)式零碎,而且構(gòu)建了一套全新的 Composition API,下面這篇文章主要給大家介紹了關(guān)于Vue3新?tīng)顟B(tài)管理工具的相關(guān)資料,需要的朋友可以參考下2022-03-03Vue3 computed初始化獲取設(shè)置值實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Vue3 computed初始化以及獲取值設(shè)置值實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10JS 函數(shù)的 call、apply 及 bind 超詳細(xì)方法
這篇文章主要描述JS 函數(shù)的 call、apply 及 bind 方法的超詳細(xì)解說(shuō),感興趣的朋友可以參考下文,希望能幫助到您2021-08-08