2021SC@SDUSC
route,router,routes的区别和用法
router:一个机制,相当于一个管理者,它来管理路由:
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
routes:一组路由:
const routes=[
{
path: '/',
component: resolve => require(['./pages/Home'], resolve),
children: [
{
path: '',
component: resolve => require(['./views/Home/ProblemSets'], resolve),
meta: {
title: '首页'
}
}
]
}
]
route:一个路由
new一个路由对象:
const router = new Router({
routes
})
export default router
异步组件懒加载
懒加载可以减少webpack打包后的文件大小,避免组件重复加载,提高网页性能.在路由配置文件中或main.js里都可以对路由进行配置
1.ES实现异步组件懒加载(import)
const routes = [
{
path: '/',
name: 'HelloWorld',
component:() => import("@/components/HelloWorld")
},
]
2.vue异步组件实现懒加载
const routes = [
{
path: '/',
name: 'HelloWorld',
component:resolve => require(['@/components/HelloWorld'], resolve),
},
]
路由拦截器
例如,在main.js中:
router.beforeEach((to, from, next) => {
if (to.name === 'register') return next()
if (to.name === 'forgetPassword') return next()
if (to.name === 'activateAccount') return next()
if (to.name === 'sendMail') return next()
if (!window.sessionStorage.getItem("tk")) {
if (to.name !== 'login') {
next({name: 'login'})
}
}
next()
})