学习Vue3 第十八章(异步组件&代码分包&suspense)

简介: 在大型应用中,我们可能需要将应用分割成小一些的代码块 并且减少主包的体积

这一章节建议观看视频教程Vue3 + vite + Ts + pinia + 实战 + 源码_哔哩哔哩_bilibili


异步组件


在大型应用中,我们可能需要将应用分割成小一些的代码块 并且减少主包的体积


这时候就可以使用异步组件


顶层 await


在setup语法糖里面 使用方法


<script setup> 中可以使用顶层 await。结果代码会被编译成 async setup()


<script setup>
const post = await fetch(`/api/post/1`).then(r => r.json())
</script>


父组件引用子组件 通过defineAsyncComponent加载异步配合import 函数模式便可以分包


<script setup lang="ts">
import { reactive, ref, markRaw, toRaw, defineAsyncComponent } from 'vue'
const Dialog = defineAsyncComponent(() => import('../../components/Dialog/index.vue'))
//完整写法
const AsyncComp = defineAsyncComponent({
  // 加载函数
  loader: () => import('./Foo.vue'),
  // 加载异步组件时使用的组件
  loadingComponent: LoadingComponent,
  // 展示加载组件前的延迟时间,默认为 200ms
  delay: 200,
  // 加载失败后展示的组件
  errorComponent: ErrorComponent,
  // 如果提供了一个 timeout 时间限制,并超时了
  // 也会显示这里配置的报错组件,默认值是:Infinity
  timeout: 3000
})


suspense


<suspense> 组件有两个插槽。它们都只接收一个直接子节点。default 插槽里的节点会尽可能展示出来。如果不能,则展示 fallback 插槽里的节点。


     <Suspense>
            <template #default>
                <Dialog>
                    <template #default>
                        <div>我在哪儿</div>
                    </template>
                </Dialog>
            </template>
            <template #fallback>
                <div>loading...</div>
            </template>
        </Suspense>


目录
相关文章
|
2天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的初小教育课外学习生活活动平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的初小教育课外学习生活活动平台附带文章和源代码设计说明文档ppt
6 1
|
2天前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
7 0
|
2天前
|
JavaScript Java 测试技术
基于ssm+vue.js的线上学习平台系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js的线上学习平台系统附带文章和源代码设计说明文档ppt
10 0
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的经典诗文学习爱好者学习交流平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的经典诗文学习爱好者学习交流平台附带文章和源代码设计说明文档ppt
8 0
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的数据结构课程网络学习平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的数据结构课程网络学习平台附带文章和源代码设计说明文档ppt
12 2
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的中学课内小说阅读与学习系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js的中学课内小说阅读与学习系统附带文章和源代码设计说明文档ppt
8 1
|
3天前
|
缓存 JavaScript 前端开发
Vue 3的响应式系统
【5月更文挑战第31天】Vue 3的响应式系统
8 1
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的学习交流论坛附带文章和源代码设计说明文档ppt
基于ssm+vue.js的学习交流论坛附带文章和源代码设计说明文档ppt
8 1
|
3天前
|
JavaScript Java 测试技术
基于ssm+vue.js的医学生在线学习交流平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的医学生在线学习交流平台附带文章和源代码设计说明文档ppt
11 4
|
4天前
|
JavaScript 前端开发 安全
Vue响应式设计
【5月更文挑战第30天】Vue响应式设计
24 1