combotree 可以异步加载吗_关于vue异步组件的基本描述

本文探讨了如何通过异步加载组件来优化首屏性能,详细阐述了异步组件的工作原理和使用方法,包括其在点击事件触发后的加载过程。通过示例,展示了未使用异步加载时组件的预加载问题,以及如何通过合并组件和设置webpackChunkName来减少资源消耗。同时,提到了预加载策略,如rel='prefetch'和'rel=preload'在提升用户体验上的应用。
摘要由CSDN通过智能技术生成

在项目中,有些组件不会在第一次进入首屏时加载,而是当执行了某些操作时,才会加载进来,所以此时,我们可以将该组件设置成异步加载,什么时候用,什么时候再加载进来,以达到提升首屏性能的目的。

异步组件使用方法:

components: {

BaseLevel: () => import ('url');

}

--有点像图片的预加载。

如果不使用异步组件,那么不管你有没有操作,它都会先加载进来,这样就比较耗费性能。

如:写一个组件,当点击按钮后才让组件加载显示,没有设置成异步加载时。

465304f38544f6456dcf9d46b931d822.png

f862ad4abd317b72fd48a1a2feb9111c.png

44b240a901c5f6def7dc99b501ffcf02.png

可以看到,就算我们没有点击按钮,这个组件依然会被加载进来。

当我们设置成异步组件之后:

66ded61a34e8b075e0996f2f899ddf4c.png

da6f28c3de399193fe572c34765da774.png

cf757511dcb6a818feaf0aba4951a49e.png

可以看到,在app.js中并没有找到这个组件。

当点击按钮之后,会出现0.js文件,在里面就可以找到点击按钮后需要加载的组件。

d03c5b3a8ae5a7ca7e7e9b67eae45b31.png

2a71b5add117b8a49ca41b3502ea02f7.png

cc6c047ba8004f02123d799373405b6c.png

如果需要同时加载多个组件,如:

d1fd79a0a7dc0b5c21b8377d6f895926.png

4426e2082c057749fcdb3319701e2c98.png

775a9a7874888e6ef046d676c6b354f9.png

4aa60d164c2134acb5659763be8fd247.png

f73966ef3ff5b8fed99e5af47aff0492.png

3ecd8a43a26d617729fa33ace280bb44.png

452abd23880eded091df514ea0cf39e5.png

可以看到这两个组件分布表被放到了两个文件中(1.js 2.js)。

这样也是比较耗费性能的,我们可以把它们放进一个文件当中去。

如:

464e0e8f1b682c2751dce6aebf3458d3.png

f9e3a7701e02311955c7d52a8464d999.png

d4216c665974db743d0f05d5d35934a2.png

012709cae384bec501b8bf9690e0ec92.png

将多个需要同时加载的组件合并到一个文件中,只需要在url前面加上注释 /* webpackChunkName: "async" */ 就可以了。

异步加载的文件,会在link标签上设置 rel="prefech"。浏览器会在空闲时间内下载对应的资源,使用时可以直接从缓存中获取。与之对应的 rel="preload",会及时下载对应的资源。

7ce9f9dedaeee351c8244aae65fc53f8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值