美文网首页
Vue3_18(异步组件&代码分包&suspense)

Vue3_18(异步组件&代码分包&suspense)

作者: BingJS | 来源:发表于2022-06-22 18:45 被阅读0次

    异步组件

    在大型应用中,我们可能需要将应用分割成小一些的代码块 并且减少主包的体积
    这时候就可以使用异步组件

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

    suspense

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

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

    相关文章

      网友评论

          本文标题:Vue3_18(异步组件&代码分包&suspense)

          本文链接:https://www.haomeiwen.com/subject/xqpsdrtx.html