// 定义一个异步组件
const AsyncComponent = defineAsyncComponent(() => {
// 返回一个 Promise,当组件加载完成时解析
return new Promise((resolve, reject) => {
// 模拟异步加载,例如从服务器获取组件
setTimeout(() => {
resolve({
template: `<div>This is an async component!</div>`
});
}, 1000);
});
});
// 使用异步组件
new Vue({
el: '#app',
components: {
AsyncComponent
},
template: `
<div>
<async-component></async-component>
</div>
`
});
defineAsyncComponent:这是 Vue 3 中用于定义异步组件的函数。它接受一个返回 Promise 的工厂函数,该 Promise 应该在组件加载完成后解析为组件定义。
模拟异步加载:在这个例子中,我们使用 setTimeout 来模拟异步加载过程。实际应用中,你可能会使用 import() 动态导入语法来加载组件,或者从服务器获取组件代码。
组件注册和使用:我们将异步组件注册到 Vue 实例的 components 选项中,并在模板中通过自定义标签 <async-component> 使用它。
Vue 实例:我们创建了一个 Vue 实例并挂载到 DOM 元素 #app 上,同时定义了模板结构,其中包含异步组件。
如果你需要更复杂的加载逻辑(如加载状态、错误处理等),可以传递一个对象给 defineAsyncComponent,并配置 loadingComponent、errorComponent 等选项。
上一篇:vue 异步组件
下一篇:vue安装sass
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站