vue-router路由懶加載 和權限控制,今天剛好搞了一個基於node token驗證的小demo
所以下面介紹下,路由懶加載
1、為什么要使用路由懶加載呢
用vue.js寫單頁面應用時,會出現打包后的JavaScript包非常大,影響頁面加載,我們可以利用路由的懶加載去優化這個問題,當我們用到某個路由后,才去加載對應的組件,這樣就會更加高效
2、用法
import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ routes: [ { path: '/', meta: { requiresAuth: true }, component: resolve => require(['components/Hello.vue'], resolve) }, { path: '/about', component: resolve => require(['components/About.vue'], resolve) } ] })
3、對路由鈎子進行權限控制
//注冊全局鈎子用來攔截導航
router.beforeEach((to, from, next) => { //獲取store里面的token let token = store.state.token; //判斷要去的路由有沒有requiresAuth if(to.meta.requiresAuth){ if(token){ next(); }else{ next({ path: '/login', query: { redirect: to.fullPath } // 將剛剛要去的路由path(卻無權限)作為參數,方便登錄成功后直接跳轉到該路由 }); } }else{ next();//如果無需token,那么隨它去吧 } });