Vue 3中如何处理懒加载?

简介: 在 Vue 3 中,处理懒加载的方式与 Vue 2 中有所不同。Vue 3 推荐使用 Suspense 和 defineAsyncComponent 来实现组件的懒加载。

在 Vue 3 中,处理懒加载的方式与 Vue 2 中有所不同。Vue 3 推荐使用 Suspense 和 defineAsyncComponent 来实现组件的懒加载。


Suspense 组件是 Vue 3 中新增的组件,用于处理异步组件的加载状态。我们可以在 Suspense 中使用 fallback 属性指定一个加载中的占位符,直到异步组件加载完成后再显示真正的内容。


defineAsyncComponent 是 Vue 3 中定义异步组件的新方法。它返回一个 Promise 对象,该 Promise 对象在组件被请求之前解析为一个组件选项对象,从而实现异步组件的加载。


下面是一个使用 Suspense 和 defineAsyncComponent 实现组件懒加载的示例:

Copy Code<template>
  <div>
    <h1>Lazy Component Demo</h1>
    <Suspense>
      <template #default>
        <AsyncComponent />
      </template>
      <template #fallback>
        <p>Loading...</p>
      </template>
    </Suspense>
  </div>
</template>
<script>
import { defineAsyncComponent } from 'vue';
const AsyncComponent = defineAsyncComponent({
  loader: () => import('./AsyncComponent.vue'),
  delay: 200, //延迟时间
  timeout: 3000, //超时时间
  errorComponent: () => 'Oops, something went wrong!',
  loadingComponent: () => 'Loading component...',
});
export default {
  components: {
    AsyncComponent,
  },
};
</script>
相关文章
|
9天前
vue3【实战】语义化首页布局
vue3【实战】语义化首页布局
28 2
|
9天前
|
存储 容器
vue3【实战】来回拖拽放置图片
vue3【实战】来回拖拽放置图片
19 2
|
9天前
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
32 1
|
9天前
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
19 1
|
9天前
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
17 1
|
4天前
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
6 0
|
4天前
|
JavaScript
【vue3】vue3中路由hash与History的设置
【vue3】vue3中路由hash与History的设置
9 0
|
4天前
|
编解码 前端开发
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
11 0
|
4天前
|
JavaScript
【vue】图片懒加载 vue-lazyload 使用
【vue】图片懒加载 vue-lazyload 使用
8 0
|
4天前
|
JavaScript
【vue】 vue 翻页时钟制作,vue2、vue3
【vue】 vue 翻页时钟制作,vue2、vue3
11 0