Vue 3.x 异步组件 减少白屏
使用方式:需要结合 suspense
组件、 defineAsyncComponent
、 import
方法使用
作用:程序优化。将应用分割成小一些的代码块,并且减少主包的体积,减少屏幕白屏时间。(build 打包时会将异步组件单独打包)
顶层 await
<script setup>
中可以使用顶层 await。结果代码会被编译成 async setup()
<template>
<div>
{{ data}}
</div>
</template>
<script lang="ts" setup>
const request = () => {
return new Promise(resolve => {
setTimeout(() => {
resolve(11111)
}, 3000)
})
}
const data = await request();
</script>
父组件引用子组件 通过 defineAsyncComponent 加载异步配合 import 函数模式便可以分包
<script setup lang="ts">
import { defineAsyncComponent } from 'vue'
const Child = defineAsyncComponent(() => import('child.vue'))
</script>
suspense
<template>
<suspense>
<template #default>
<Child />
</template>
<template #fallback>
<div>
loading....
</div>
</template>
</suspense>
</template>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Vue 3.x 动态组件(is 属性)
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论