文章目录
父组件App.vue
<template>
<div>
<h1>这是父组件</h1>
<suspense>
<template v-slot:default>
<ChildComponent></ChildComponent>
</template>
<template v-slot:fallback>
<h1>稍等,加载中...</h1>
</template>
</suspense>
</div>
</template>
<script>
import {defineAsyncComponent} from "vue";
const ChildComponent = defineAsyncComponent(() => import('./components/ChildComponent'))
export default {
name: 'App',
components: {ChildComponent}
}
</script>
<style>
div {
background-color: gray;
padding: 10px;
}
</style>
子组件ChildComponent.vue
<template>
<div>
<h1>这是子组件</h1>
<h3>数据:{{ num }}</h3>
</div>
</template>
<script>
import {ref} from "vue";
export default {
name: "ChildComponent",
async setup() {
let num = ref(0)
const p = new Promise(resolve => {
setTimeout(() => {
resolve({num})
}, 3000)
})
const x = await p
console.log(x)
return x
}
}
</script>
<style scoped>
div {
background-color: skyblue;
padding: 10px;
}
</style>
结果展示
