Vue 3 异步加载组件示例

在 Vue 3 中,你可以使用异步组件来按需加载组件,这样可以提高应用的性能。以下是一个简单的例子,展示如何在 Vue 3 中异步加载组件。

假设你有一个需要异步加载的组件 AsyncComponent.vue

1. 创建异步组件 AsyncComponent.vue

<template>
  <div>
    <h1>这是一个异步加载的组件</h1>
  </div>
</template>

<script>
export default {
  name: 'AsyncComponent'
}
</script>

2. 在主组件中异步加载 AsyncComponent

<template>
  <div id="app">
    <button @click="loadComponent">加载组件</button>
    <Suspense>
      <template #default>
        <component :is="asyncComponent"></component>
      </template>
      <template #fallback>
        <div>加载中...</div>
      </template>
    </Suspense>
  </div>
</template>

<script>
import { defineAsyncComponent } from 'vue';

export default {
  name: 'App',
  data() {
    return {
      asyncComponent: null
    };
  },
  methods: {
    loadComponent() {
      this.asyncComponent = defineAsyncComponent(() =>
        import('./components/AsyncComponent.vue')
      );
    }
  }
};
</script>

3. 使用 Suspense 组件进行异步加载状态管理

在上面的代码中,Suspense 组件提供了一种在异步加载组件时显示加载状态的方法。#default 插槽中放置的是异步加载的组件,#fallback 插槽中放置的是加载时显示的内容。

4. 项目结构

src/
├── components/
│   └── AsyncComponent.vue
└── App.vue

解释

  1. defineAsyncComponent:这个 Vue 3 提供的函数用来定义异步组件。import('./components/AsyncComponent.vue') 返回一个 promise,当组件被成功加载时,该 promise 被 resolved。

  2. Suspense 组件Suspense 组件可以包裹异步组件,并在异步组件加载期间显示 #fallback 插槽中的内容。

通过这种方式,可以按需加载 Vue 组件,从而提高应用的性能和用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天进步2015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值