当前位置: 首页 > news >正文

幸运飞艇网站建设设计网站流程

幸运飞艇网站建设,设计网站流程,建设网企业沟通平台,小型网站建设的经验Suspense 实验性功能<Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异…
Suspense

实验性功能<Suspense> 是一项实验性功能。它不一定会最终成为稳定功能,并且在稳定之前相关 API 也可能会发生变化
<Suspense> 是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态。

<Suspense> 可以等待的异步依赖有两种:

  • 带有异步 setup() 钩子的组件。这也包含了使用 <script setup> 时有顶层 await 表达式的组件。

  • 异步组件。
    异步组件默认就是“suspensible”的。这意味着如果组件关系链上有一个<Suspense>,那么这个异步组件就会被当作这个<Suspense> 的一个异步依赖。在这种情况下,加载状态是由 <Suspense> 控制,而该组件自己的加载、报错、延时和超时等选项都将被忽略。

异步组件也可以通过在选项中指定 suspensible: false 表明不用 Suspense 控制,并让组件始终自己控制其加载状态

<Suspense> 组件会触发三个事件:pending、resolve 和 fallback。pending 事件是在进入挂起状态时触发。resolve 事件是在 default 插槽完成获取新内容时触发。fallback 事件则是在 fallback 插槽的内容显示时触发。
该组件有两个插槽:

  • default:如果default可以显示,那么显示default的内容;
  • fallback:如果default无法显示,那么会显示fallback插槽的内容;
<template>{{fullName}}<h1>App Component</h1><Suspense><template #default><AsyncMyComponent /></template><template #fallback>loading....</template><template #error="props"><Error :message="props.error.message" /></template></Suspense>
</template><script setup lang="ts">
import { ref ,computed,defineAsyncComponent} from 'vue'
import Loading from './Loading.vue'
import Error from './Error.vue'const firstName = ref('su')
const lastName = ref('mu')
const fullName = computed(() => firstName.value  + lastName.value)
// 定义异步组件
const AsyncMyComponent = defineAsyncComponent({
//   加载函数loader: () => new Promise((resolve, reject) => {setTimeout(() => {resolve(import('./AsyncMyComponent.vue'));}, 3000)}),
//   loader: () => import('./AsyncMyComponent.vue'),// 加载超时时间(可选)timeout: 3000,// 加载中的组件(可选)loadingComponent: Loading,// 错误组件(可选)errorComponent: Error,// 延迟显示加载组件的时间(可选)delay: 200,// 加载失败时的错误处理函数(可选)onError: (error: Error, retry: () => void, fail: () => void, attempt: number) => {console.error(`Error loading component: ${error.message}`);if (attempt <= 3) {retry();} else {fail();}}
});
</script><style scoped></style>

AsyncMyComponent.vue

<template><div><h2>Async Home Component</h2><p>{{ message }}</p></div></template><script lang="ts">import { defineComponent, ref, onMounted } from 'vue';export default defineComponent({name: 'AsyncMyComponent',setup() {const message = ref<string | null>(null);onMounted(async () => {try {// 模拟异步请求await new Promise<void>((resolve) => {setTimeout(() => {message.value = '异步数据加载完成';resolve();}, 2000);});} catch (error) {console.error('Error fetching data:', error);throw error;}});return { message };}});</script>

Loading.vue

<template><div class="loading"><p>Loading...</p></div></template><script lang="ts">import { defineComponent } from 'vue';export default defineComponent({name: 'Loading'});</script><style scoped>.loading {display: flex;justify-content: center;align-items: center;height: 100px;font-size: 18px;color: #666;}</style>

Error.vue

<template><div class="error"><p>Error: {{ message }}</p></div></template><script lang="ts">import { defineComponent, PropType } from 'vue';export default defineComponent({name: 'Error',props: {message: {type: String as PropType<string>,required: true}}});</script><style scoped>.error {color: red;background-color: #ffebee;padding: 10px;border-radius: 4px;}</style>
http://www.dtcms.com/a/406021.html

相关文章:

  • 基于vue的考研信息系统6kv17(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 针对单元测试、集成测试、系统测试和验收测试(用户测试)各自的目标和测试内容不同,设计对应的各类测试用例
  • (JDK,Eclipse,Tomcat版本)Java的web配置Part1 (#by 拌面
  • 中企动力算大厂吗周口网站关键词优化
  • 用 Flink DataStream API 搭建流式 ETL从无状态到有状态、从单流到连接流
  • 上海保洁服务网站建设小网站如何做密码找回
  • FreeRTOS内存管理
  • 基于 STM32 的智能洗衣机控制系统设计与实现
  • 【开题答辩全过程】以 IT项目需求发布与管理平台为例,包含答辩的问题和答案
  • 省级旅投集团数据中台架构实战:多租户隔离与主题域建模实践
  • 分布式阳台光伏系统组成及防逆流电表功能详解
  • PostgreSQL 和 MySQL两个数据库的索引的区别
  • 论文流程1
  • 苏州正规制作网站公司去了外包简历就毁了吗
  • 上海网站建设公司哪家好?大淘客怎么自己做网站
  • 解决Markdown笔记图片失效问题:Gitee+PicGo图床搭建全攻略
  • AWS中国云中的ETL之从aurora搬数据到s3(Glue版)
  • 忘记云服务器密码怎么办?阿里云/腾讯云/AWS密码重置官方指南
  • DevOps实战(9) - 使用Arbess+GitPuk+sourcefare+PostIn搭建Java自动化部署
  • 嘉兴优化网站价格怎么做网站xml地图
  • C语言指针深度解析:从硬件架构到现代安全编程
  • Vue 自定义指令详解
  • uniapp 支付宝小程序 扩展组件 component 节点的class不生效
  • 盈利的网站网站开发还找到工作吗
  • 智能体:小白零基础入门第三期,使用 Coze 搭建一款智能语音听写助手(附喂饭级教程)
  • Vue3 + TypeScript + Ant Design Vue 实现左侧菜单动态配置与路由跳转(支持路由选中项同步 + 自动展开父菜单)
  • uniapp项目使用字体图标
  • 前端拖拽,看似简单,其实处处是坑
  • 【数据结构】队列(Queue)全面详解
  • 网站做短信接口具体方法哪个网站做ppt