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

网站开发培训是不是坑贵阳市住房和城乡建设部网站

网站开发培训是不是坑,贵阳市住房和城乡建设部网站,优秀的国外设计网站,舆情报告制度什么是异步组件 在 Vue 3 中,异步组件指的是一种在需要时才加载和渲染的组件。这意味着组件不会在应用启动时立即加载,而是在真正需要显示该组件的时候,才会动态地从服务器或文件系统中加载它。这种机制可以有效减少初始包的大小&#xff0c…

什么是异步组件

在 Vue 3 中,异步组件指的是一种在需要时才加载和渲染的组件。这意味着组件不会在应用启动时立即加载,而是在真正需要显示该组件的时候,才会动态地从服务器或文件系统中加载它。这种机制可以有效减少初始包的大小,有助于减少应用的初始加载时间,提高加载速度和应用的性能。

defineAsyncComponent

defineAsyncComponent 是 Vue 3中用于定义异步组件的一个函数,它允许开发者以声明式的方式定义一个在需要时才加载的组件。这个函数是 Vue 官方提供的,它简化了异步组件的使用过程,并提供了丰富的配置选项。下面将详细介绍一下 defineAsyncComponent 函数:

函数签名

import { defineAsyncComponent } from 'vue'defineAsyncComponent({loader: () => import('./child.vue'),...options
})
  • loader: 一个返回 Promise 的函数,这个 Promise 在解析时应该返回一个组件配置对象(通常是一个组件的选项对象或一个组件定义函数)。这个函数通常使用动态导入 import() 来实现。
  • options: 一个可选的对象,包含了异步组件的配置选项

options 的配置选项

  • defineAsyncComponent 函数接受一个可选的配置对象,该对象可以包含以下属性:

  • loadingComponent: 当异步组件正在加载时显示的组件。默认情况下,如果没有提供,Vue 会显示一个默认的加载指示器。

  • errorComponent: 当异步组件加载失败时显示的组件。默认情况下,如果没有提供,Vue 会显示一个错误信息。

  • delay: 一个数字,表示在显示加载组件之前等待的时间(以毫秒为单位)。默认为 0,即立即显示加载组件。

  • timeout: 一个数字,表示异步组件加载的超时时间(以毫秒为单位)。如果超时,将触发错误处理。默认为 Infinity,即没有超时限制。

  • onError: 一个函数,当异步组件加载失败时调用。这个函数接收错误对象作为参数。

实际应用

父级组件 Home.vue

<template><div class="home"><button @click="show = !show">加载组件</button><child v-if="show" /></div>
</template><script setup>
import { ref, defineAsyncComponent } from 'vue';let show = ref(false)
let child = defineAsyncComponent({loader: () => import('./child.vue')
})
</script>

子组件 child.vue

<template><div>{{ content }}</div>
</template><script setup>
import {ref} from 'vue'
let content = ref('子组件')
</script>

父级组件中的写法,对于这种比较简单的子组件来说,如果和普通正常加载对比通常视觉效果上没多大差距,例如以下这种写法,不管v-if 中show 的值,初始为true还是false,页面都会预先加载好child.vue这个组件的资源

而上面的通过defineAsyncComponent异步加载的这种写法,是在实际渲染的时候才会去加载对应的资源,可以理解为 vue-router 中使用过的**路由懒加载**。

<template><div class="home"><button @click="show = !show">加载组件</button><child v-if="show" /></div>
</template><script setup>
import { ref, defineAsyncComponent } from 'vue';
import child from './child.vue';
let show = ref(false)
</script>
正常加载异步加载

Suspense

<Suspense> 是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态。

但要注意的是<Suspense> 是一项实验性功能。它不一定会最终成为稳定功能,并且在稳定之前相关 API 也可能会发生变化。

Suspense 允许定义一个等待异步组件加载的“占位符”,在异步组件加载完成之前,可以显示一个加载状态或者默认内容。

实际应用

Suspense 组件的实例,用于包裹异步组件,允许在组件加载期间显示备用内容。
Suspense有两个插槽:#default 和 #fallback
#default 用来显示要加载的组件,#fallback 则是在异步组件加载时显示的内容

    <template><div class="home"><button @click="show = !show">加载组件</button><Suspense v-if="show"><template #default><!-- 这里的 AsyncComponent 是一个异步加载的组件 --><child /></template><template #fallback><!-- 在异步组件加载时显示的内容,例如一个加载指示器 --><div>Loading...</div></template></Suspense></div></template><script setup>import { ref, defineAsyncComponent } from 'vue';let show = ref(false)let child = defineAsyncComponent({loader: () => {return new Promise((resolve, reject) => {setTimeout(() => {resolve( import('./child.vue'))}, 2000);})},delay: 2000})</script>

为了模拟延迟加载的效果,defineAsyncComponent的loader参数返回一个Promise,并定时2s后再resolve,在加载期间会显示#fallback插槽中的 Loading…,加载完后渲染child组件

下面是效果图


文章转载自:

http://9CNMDBzC.fynkt.cn
http://repmj8Cx.fynkt.cn
http://n1BiSEjM.fynkt.cn
http://VucYZTsA.fynkt.cn
http://CkcQhZPm.fynkt.cn
http://GUzLELUU.fynkt.cn
http://J88DqrI6.fynkt.cn
http://QK3qy4y0.fynkt.cn
http://RsJICGvY.fynkt.cn
http://GllRqfTP.fynkt.cn
http://pIpuPv5K.fynkt.cn
http://RWbPu3ov.fynkt.cn
http://xhjjtFeU.fynkt.cn
http://87QOJ0Xv.fynkt.cn
http://r3IqAjHL.fynkt.cn
http://2Y6U6ja6.fynkt.cn
http://jqdHQVjY.fynkt.cn
http://JUcXDiPI.fynkt.cn
http://i3tU9nvh.fynkt.cn
http://DDpaqKmA.fynkt.cn
http://onfYUZBg.fynkt.cn
http://gaIbmACY.fynkt.cn
http://n7Nj1Qvo.fynkt.cn
http://YhiYPb4n.fynkt.cn
http://MH2GKWOP.fynkt.cn
http://wzPbITML.fynkt.cn
http://l9ieN03C.fynkt.cn
http://T7zqHFu3.fynkt.cn
http://Vv2JtS65.fynkt.cn
http://EqbLUchf.fynkt.cn
http://www.dtcms.com/wzjs/633330.html

相关文章:

  • 网站开发公司简介怎么写网站开发的流行架构
  • html网站代码网站哪家做的比较好的
  • 网站建设方案后期服务网站建设制作细节
  • 烟台教育平台网站建设wordpress 内容采集
  • 网站开发毕设设计论文wordpress主题百度
  • 长尾网站搜索引擎中国数控机床网
  • 杭州微网站开发郑州网站建设包括哪些
  • 网站建设教程 乐视网wordpress页面调取文章
  • 设计比较有特色的网站南城网站建设公司信息
  • 网站页面分类网站主流系统
  • 网站制作素材图片网站开发外包公司坑
  • 网站提供服务商广告店名字怎么取好
  • 网站开发项目视频WordPress小工具两列
  • 网站建设及推广销售话术百度关键词购买
  • 建设银行网站打印消费账单诸城 建设外贸网站
  • 西部数码网站管理助手v3.0软件开发下载
  • 服务器维护网站建设教程虚拟机做网站有用吗
  • 定制开发网站网站上线流程
  • 惠州网站建设方案托管十大网站建设
  • 哪些做任务可以赚钱的网站网店网络推广策划
  • wordpress网站的根目录在哪学网站建设能赚钱吗
  • 文库网站开发建设柳州网站seo网站s
  • 那些彩票广告网站怎么做的常用的网站建设技术
  • 服务中心网站建设意见如何做网站关键词排名
  • 建设信用卡银行积分商城网站百度广告投放价格
  • 专门找人做软件的网站东莞网站制作智能 乐云践新
  • 网站推广效果分析各大网站vip接口建设
  • 廊坊市建设局官方网站高端品牌包包排行榜前十名
  • 自己做的网站显示不安全怎么回事网站自适应案例
  • 威海市临港区建设局网站阿里云网站建设考试题目