原因:随着组件增多,首屏加载时间越来越久
异步加载组件:用不到的组件不会加载,因此网页打开速度会很快,当你用到这个组件的时候,才会通过异步请求进行加载;
官方解释:Vue允许将组件定义为一个异步解析(加载)组件定义的工厂函数,即Vue只在实际需要渲染组件时,才会触发调用工厂函数,并且将结果缓存起来,用于将来再次渲染
方式一:
component: resolve => require([ '组件路径' ], resolve), meta: { title: 'infoDetail', noCache: true }
方式二:
component: ()=>import('组件路径') meta: { title: 'infoDetail', noCache: true }
方式三:高级异步组件(可以处理加载状态)
//工厂对象可以返回一个如下对象,对象里面的一些配置参数` `const AsyncComponent = () => ({` ` ```// 需要加载的组件 (这个 `import` 函数会返回一个 `Promise` 对象。)
``component: import('./MyComponent.vue'),
``// 异步组件加载时使用的组件
``loading: LoadingComponent,
``// 加载失败时使用的组件
``error: ErrorComponent,
``// 展示加载时组件的延时时间。默认值是 200 (毫秒)
``delay: 200,
``// 如果提供了超时时间且组件加载也超时了,
``` // 则使用加载失败时使用的组件。默认值是:Infinity`` timeout: 3000` `})` 方式四:参考链接https://zhuanlan.zhihu.com/p/55990173 `component: `require.ensure(['./tab0.vue'], () => { resolve(require('./tab0.vue'``)) }, ‘tab0')`