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

199 阅读1分钟

异步组件

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

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

顶层 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'))

suspense

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

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

        <template #fallback>
            <div>loading...</div>
        </template>
    </Suspense>

转载自:blog.csdn.net/qq119556631…

作者:小满