vue异步组件defineAsyncComponent的使用
在一些场景中,可能需要根据用户的选择,决定去加载一些组件,比如地图下钻、模版切换等,这些场景中,虽然一次性将所有可能用到的组件都加载也可以运行,但对性能会是很大的伤害,因此,在这些场景中,我们需要根据用户的选择去异步加载所需要用到的组件。
vue官方为我们提供了defineAsyncComponent组件,但是好像大部分人都没有用到,遇到问题时,网上也很难找到相关答案。
学习defineAsyncComponent异步组件之前,我们需要了解两个基本知识点,1、defineAsyncComponent接收一个返回Promise对象的加载函数作为参数,2、ES的加载模块返回结果为Promise。因此,我们可以直接将ES的加载模块作为defineAsyncComponent的参数来使用。
很多人在运行官方的例子时,没有问题,但自己一写就错了。
仔细查看官方给出的例子:
import { defineAsyncComponent } from 'vue'
const AsyncComp = defineAsyncComponent(() =>
import('./components/MyComponent.vue')
)
怎么说呢,这个例子还是有一定的误导性,粗心的人大概率会没注意到这里使用到了箭头函数的简写形式。确实在实际编码过程中,我们如果使用箭头函数的简写形式,一般都会写在一行,这种换行的写法还是见的比较少的,如下:
const fun = ()=>
console.log('abc')
所以,当我们自己写时,如果需要写成完整形式,则在函数体内,一定要记得return,如下:
const AsyncComp = defineAsyncComponent(() =>{
return import('./components/MyComponent.vue')
})
事实上,很多的问题,都是源于我们粗心大意。
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS最大值计算函数--max()函数的定义和使用
max()函数的作用是从一系列用逗号分割的参数中选取最大的一个,作为属性值,参数可以是直接数值,字面量、数学表达式、css函数等,支持嵌套。与min()函数的作
- 后台发布文章时自动保存草稿功能的实现
“正在系统后台编辑文章,顺手看了下群里的视频,关视频的时候不小心连网页一起关闭了,写了大半的文章说没就没了?”,相信很多人都遇到过这种场景,辛辛苦苦码了半天的字
- CSS获取属性值函数--attr()函数的定义和使用
attr()函数为CSS返回元素属性值函数一、attr()函数的语法:该函数接收一个单一参数:attribute-name,即属性名,attr()函数返回被选择
- 富文本编辑器CKEditor5接入指南
在后端制作CMS等需要用到富文本编辑器的时候,经常会陷入选择困难症,众所周知,目前市面上的富文本编辑器大概有数十种,比如百度的ueditor、TinyMCE、w
- WebStorm中如何配置SCSS
WebStorm是一款很优秀的用于前端开发的IDE,用于开发基于HTML、CSS、JS等的应用时非常应手,当然JetBrains旗下的其他IDE,如PHPSto
- CSS颜色函数--rgb()、rgba()的语法和使用
rgb()函数和rgba()函数是前端切图工作当中经常用到的颜色函数,根据光学三原色红(red)、绿(green)、蓝(blue)三种颜色的不同分量进行混合后来
- CSS限定属性值函数--clamp()函数的语法和使用
clamp()的作用是将属性值限制在最大、最小值之间,当值介于最大最小值范围中时,则使用给定的首选值。一、clamp()函数的语法clamp(MIN, VAL,