什么是路由懒加载?
不同组件有不同的 js 文件,当访问相应组件的时候才会加载其相应的js文件,而不是在首页统一加载,这样就优化了首页渲染的时间,提高页面首次渲染时间;
路由懒加载的原理?
底层是一个打包,分包的情况;如果不按照路由懒加载的方式的话,他打包的时候都会打包成一个js文件,如果有五十个组件的话那就打包成了一个文件,这样首屏加载肯定慢了;按需加载组件的话,就会打包成50个js文件,首页加载第一个文件,其他的点击的时候按需加载
路由 懒加载 具体的实现:
var router = new VueRouter ({routes:[{path: '/public',name: 'public',component: () = > {// 使用import 引入import('./components/tabber/Free.vue')}}]
动态路由:
在原本的路由中没有载入其路由,而在外面动态给他添加一个路由
动态路由在路由导航里面做,做个判断,有权限的路由展示,没权限的不展示
this.$router.addRoute(newRouter)
在 router.js文件中:
export const oldRouter = [{path: '/oldRouter',component: oldRouter}]export const newRouter= [ // 做动态路由的{path: '/newRouter',component: newRouter}]var router = new Router({// 默认添加oldRouter,此时切换newRouter路由,但是newRouter里面的内容不能显示,就需要动态添加routes: oldRouter, mode: 'history'})
再进行路由切换的时候给他新增就可以了
this.$router.addRoute(newRouter)