vue异步加载组件方法

186 阅读1分钟

原因:随着组件增多,首屏加载时间越来越久 异步加载组件:用不到的组件不会加载,因此网页打开速度会很快,当你用到这个组件的时候,才会通过异步请求进行加载; 官方解释: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')`