vue3--学习技术胖笔记----第六波 异步组件Suspense(就是组件不是一下就加载出来的交互怎么展示)
AsyncShow.vue --组件
<template>
<div class="child">
<div>我是子组件</div>
<h3>{{result}}</h3>
</div>
</template>
<script>
import { ref } from "vue";
export default {
setup() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({result:"JSPang"})
}, 2000);
});
},
};
</script>
<style scoped>
.child {
padding: 10px;
background-color: #e8f;
}
</style>
App.vue ----调用方
<template>
<div>
<h2>欢迎光临红浪漫洗浴中心</h2>
<Suspense>
<template #default>
<AsyncShow />
</template>
<template #fallback>
<H2>Loading>>>></H2>
</template>
</Suspense>
</div>
</template>
<script lang="ts">
// import {ref,} from "vue";
import AsyncShow from "./hoots/AsyncShow.vue"
export default({
name:"APP",
components:{AsyncShow},
setup(){
return{
}
},
});
</script>
<style scoped>
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
}
.logo:hover {
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
filter: drop-shadow(0 0 2em #42b883aa);
}
</style>
组件未加载完成前

组件加载完成后:

如组件有请求接口的场景

貌似这种调用这个组件请求发生错误的时候可以捕获异常

参考: https://www.bilibili.com/video/BV1L5411j7vj?p=14&vd_source=caabcbd2a759a67e2a3de8acbaaf08ea

浙公网安备 33010602011771号