当前位置:   article > 正文

Vue3 Suspense 和 defineAsyncComponent 结合使用方法

Vue3 Suspense 和 defineAsyncComponent 结合使用方法

Suspense用于协调对组件树中嵌套的异步依赖的处理。

defineAsyncComponent:定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。

异步组件的好处:使用 import() 函数式模式引入的组件,打包的时候都会做一个代码拆解,会打包成单独的文件,而不会打包到主包中,当使用的时候在进行加载,这样可以减少首屏加载时间,优化用户体验

异步组件 HomeView.vue:

  1. <script setup lang="ts">
  2. // 这里模拟异步方法
  3. await new Promise((resolve)=>{
  4. setTimeout(() => {
  5. resolve('接口返回成功')
  6. }, 1000);
  7. })
  8. </script>
  9. <template>
  10. <div>
  11. 我是异步组件
  12. </div>
  13. </template>

页面默认显示 “加载中...” ,当异步组件的异步方法返回成功,页面显示异步组件的内容,代码如下:

  1. <script setup lang="ts">
  2. import { defineAsyncComponent } from "vue";
  3. const HomeView=defineAsyncComponent(()=>import('./views/HomeView.vue'))
  4. </script>
  5. <template>
  6. <Suspense>
  7. <template #default>
  8. <HomeView></HomeView>
  9. </template>
  10. <template #fallback>
  11. <div>加载中...</div>
  12. </template>
  13. </Suspense>
  14. </template>

上述案例可用于实现大型项目的骨架屏效果,提升用户体验。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/984410
推荐阅读
相关标签
  

闽ICP备14008679号