第一种懒加载方式:
import Vue from 'vue'
import Router from 'vue-router'
const login= () => import('./components/login.vue')
const routerB = () => import('./components/routerB.vue')
const routerC = () => import('./components/routerC.vue')
const routerD = () => import('./components/routerD.vue')
Vue.use(Router)
const router = new Router({
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login', component: login},
{
path: '/routerB ',
component: routerB ,
redirect: '/routerB ',
children: [
{ path: '/routerC ', component: routerC },
{ path: '/routerD ', component: routerD }
]
}
]
})
// 挂载路由导航守卫
router.beforeEach((to, from, next) =>
if (to.path === '/login') return next()
// 获取token
const token = window.sessionStorage.getItem('token')
if (!token) return next('/login')
next()
})
export default router
第二种懒加载方式:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
{
path: '/login',
name: 'login',
component: () => import('@/views/login')
},
{
path: '/',
component: () => import('@/views/routerB'),
children: [
]
}
]
const router = new VueRouter({
routes
})
export default router
第三种懒加载方式:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
{
path: '/login',
name: 'login',
component: resolve => require(['@/views/login'],resolve)
},
{
path: '/',
component: resolve => require(['@/views/routerB '],resolve),
children: [
{
path: '',
name: 'routerC',
component: resolve => require(['@/views/routerC'],resolve),
meta: {
keepAlive: true
}
}
]
const router = new VueRouter({
routes
})
export default router