Vue 3 单文件组件怎么处理异步组件(defineAsyncComponent)的按需加载

秋伟君_2166

秋伟君_2166

2026-10-19

737人浏览

原创

vue 3 中 defineasynccomponent 实现按需加载,分离代码加载与逻辑执行时机;支持 script setup 简洁写法及 loading/error 提示,适用于弹窗、图表等非首屏组件。

vue 3 单文件组件怎么处理异步组件(defineasynccomponent)的按需加载

Vue 3 单文件组件中使用 defineAsyncComponent 实现按需加载,核心是把“组件代码的加载时机”和“组件内部逻辑的执行时机”分开控制。它不改变组件写法,只改变注册和引入方式,适合弹窗、图表、管理子模块等非首屏必需内容。

在 script setup 中直接定义异步组件

这是最常用也最简洁的方式:用 defineAsyncComponent 包裹动态 import(),然后像普通组件一样在模板中使用。

  • 在 <script setup></script> 中导入并定义:
import { defineAsyncComponent } from 'vue'
const HeavyChart = defineAsyncComponent(() => import('./HeavyChart.vue'))
const UserEditor = defineAsyncComponent(() => import('./UserEditor.vue'))
  • 模板中直接使用,无需额外判断是否加载完成:


Vue 会在首次渲染该标签时触发加载,后续复用直接从缓存取。

添加加载与错误反馈更稳妥

真实项目中建议配置 loadingComponent 和 errorComponent,避免白屏或卡顿感。

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.1万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习