在项目中,有些组件不会在第一次进入首屏时加载,而是当执行了某些操作时,才会加载进来,所以此时,我们可以将该组件设置成异步加载,什么时候用,什么时候再加载进来,以达到提升首屏性能的目的。
异步组件使用方法:
components: {
BaseLevel: () => import ('url');
}
--有点像图片的预加载。
如果不使用异步组件,那么不管你有没有操作,它都会先加载进来,这样就比较耗费性能。
如:写一个组件,当点击按钮后才让组件加载显示,没有设置成异步加载时。
可以看到,就算我们没有点击按钮,这个组件依然会被加载进来。
当我们设置成异步组件之后:
可以看到,在app.js中并没有找到这个组件。
当点击按钮之后,会出现0.js文件,在里面就可以找到点击按钮后需要加载的组件。
如果需要同时加载多个组件,如:
可以看到这两个组件分布表被放到了两个文件中(1.js 2.js)。
这样也是比较耗费性能的,我们可以把它们放进一个文件当中去。
如:
将多个需要同时加载的组件合并到一个文件中,只需要在url前面加上注释 /* webpackChunkName: "async" */ 就可以了。
异步加载的文件,会在link标签上设置 rel="prefech"。浏览器会在空闲时间内下载对应的资源,使用时可以直接从缓存中获取。与之对应的 rel="preload",会及时下载对应的资源。