> vue3的異步組件用法較vue2有所區別:
```
//異步組件
import { defineAsyncComponent } from 'vue'
// 不帶選項的異步組件
let HelloWorld = defineAsyncComponent(() => import('./components/HelloWorld.vue'))
// 帶選項的異步組件
const HelloWorldOption = defineAsyncComponent({
loader: () => import('./components/HelloWorld.vue'),
delay: 200,
timeout: 3000,
errorComponent: ErrorComponent, 異步加載組件錯誤時加載該組件
loadingComponent: LoadingComponent 異步加載組件加載中時加載該組件
})
export default {
components: { HelloWorld },
setup() {
let itemRefs = []
const list = ref(['1', '2', '3']);
//方法
const setItemRef = el => {
if (el) {
itemRefs.push(el)
}
}
onMounted(()=>{
console.log(itemRefs[0])
})
//在模版更新之前
onBeforeUpdate(() => {
itemRefs = []
})
//模版更新
onUpdated(() => {
console.log(itemRefs)
})
//輸出方法和變量給模版使用
return {
setItemRef,
list
}
}
}
</script>
```