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