当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就会更加高效
其实我们一直用的就是路由懒加载
// 将
// import UserDetails from './views/UserDetails.vue'
// 替换成
const UserDetails = () => import('./views/UserDetails.vue')
const router = createRouter({
// ...
routes: [{ path: '/users/:id', component: UserDetails }],
})
对路由的添加通常是通过 routes 选项来完成的,但是在某些情况下,你可能想在应用程序已经运行的时候添加或删除路由。动态路由主要通过两个函数实现。router.addRoute() 和router.removeRoute()。它们只注册一个新的路由,也就是说,如果新增加的路由与当前位置相匹配,就需要你用 router.push() 或 router.replace() 来手动导航,才能显示该新路由
/**
* 接收一个参数是路由对象
*/
router.addRoute({ path: "/about", component: About });
/**
* 添加嵌套路由
* 第一个参数是父级路由的name
* 第二个参数 是路由对象
*/
router.addRoute("父级路由Name", { path: "/about", component: About });
// 传入要删除路由的name
router.removeRoute('about')