位置: IT常识 - 正文

vue3中实现异步组件(vue解决异步取值问题)

编辑:rootadmin
vue3中实现异步组件

推荐整理分享vue3中实现异步组件(vue解决异步取值问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue异步调用方法,vue3 异步组件,vue如何实现异步加载,vue异步调用方法,vue3 异步组件,vue异步是什么意思,vue异步是什么意思,vue异步是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

使用场景一:当组件进入视窗时再进行加载

假设页面中有三个组件A、B、C

C组件中有一张图片

<template> <div class="A"> <A></A> </div> <div class="B"> <B></B> </div> <div> <C></C> </div></template><script setup>import A from './components/A.vue'import B from './components/B.vue'import C from './components/C.vue'</script>

打开页面:

如果一个页面中的内容非常多,用户再首次打开时并没有浏览到下方的内容,但页面必须加载完下方的内容才会显示,这无疑非常影响性能

接下来我们做一些调整

defineAsyncComponentvue3中实现异步组件(vue解决异步取值问题)

创建一个只有在需要时才会加载的异步组件。

 defineAsyncComponent是vue3提供的内置api。用于异步加载组件

但是仅靠这个api并不能完成我们所需要的功能

这里我们还需要借助vueUse中的一个api 

首先我们需要安装一下vueUse的依赖

npm i @vueuse/core

我们需要使用vueUse中的useIntersectionObserver 

 安装完成后来修改一下我们的代码:

<template> <div class="A"> <A></A> </div> <div class="B"> <B></B> </div> <div ref="target"> <C v-if="targetIsVisible"></C> </div></template><script setup>import A from './components/A.vue'import B from './components/B.vue'import { defineAsyncComponent, ref } from 'vue';import { useIntersectionObserver } from '@vueuse/core'const C = defineAsyncComponent(() => //异步引入组件 import('./components/C.vue'))const target = ref(null) //获取需要操作的dom元素const targetIsVisible = ref(false) //定义一个dom元素显示与隐藏开关const { stop } = useIntersectionObserver( //定义一个函数用于控制 target, ([{ isIntersecting }]) => { //这里的isIntersecting表示的是dom元素是否进入视窗,值为true或flase console.log(isIntersecting); if (isIntersecting) { targetIsVisible.value = isIntersecting //将isIntersecting赋值给开关,即表示进入视窗就显示该dom元素 } },)</script>

 

 

这样就实现了异步加载C组件,在页面视窗滚动到C组件时才会加载C组件。

本文链接地址:https://www.jiuchutong.com/zhishi/297389.html 转载请保留说明!

上一篇:使用python中的pymrmr模块来进行特征提取,深入学习mRMR(最大相关最小冗余准则)(python pymongo)

下一篇:登录页面的实现及跳转(vue-router)(登录页面的实现方式)

  • 财务费用和应付利息怎么算
  • 待认证进项税额认证以后怎么做分录
  • 外国人在中国工作签证
  • 资产几百亿真的有那么多钱吗?
  • 法人转入公司的资金怎么做账
  • 公司承担的社保可以税前扣除吗
  • 印花税交完有什么凭证
  • 预付款如何扣除
  • 建设工程服务招标管理办法
  • 企业所得税调增项目有哪些
  • 银行利息的现金流量项目是什么
  • 堤围内的土地性质
  • 上月已认证的发票发现错误怎么办
  • 俱乐部会员有什么用
  • 总公司集中支付说明
  • 待认证发票后面需要做附件吗
  • 固定资产审计目标
  • 加计抵减是什么时候开始的
  • 装修费怎么摊销,租期两年
  • 应收账款坏账有什么措施改善
  • 投资公司如何确定收入
  • 停工停产费用
  • 路由器2.4g和4g有什么区别
  • 如何在win7系统中查看电脑基本信息
  • php二维数组遍历
  • 鸿蒙实用工具在哪里
  • encodetext
  • 如何在Mac上更改我的Apple ID
  • 收到退款的会计分录
  • php实现简单的登录验证
  • PHP:imagepsfreefont()的用法_GD库图像处理函数
  • 债权人将长期债务转为投资
  • 利润分配怎样做分录
  • javascript编写程序
  • 收到的免税苗木发票必须当月抵扣么
  • 税票电子发票怎么开
  • 所得税主要特点有
  • python的series
  • mongodb常用命令
  • 小企业如何计提折旧
  • 当月没有发放工资是不是就不用申报个税
  • 零税项目
  • 个体经营所得税核定征收2023税率
  • 企业所得税的成本
  • 为什么盈利要利息呢
  • 增值税加计抵减政策10%和15%
  • 企业所得税汇算清缴时间
  • 含有增值税的工作有哪些
  • 预付款项怎么做分录
  • 异地预缴怎么填写申报表
  • 外贸出口转内销会计分录
  • 会计凭证保管期限30年是哪一年开始的
  • 自产的产品用于管理部门
  • 汽修厂印花税怎么交
  • 个人购买机动车需要交增值税吗
  • 已认证抵扣增值税怎么撤回申报
  • 限定性和非限定性资产
  • 进销项月末结转吗
  • 工程保险一般谁投保
  • 出口退税勾选后电子税务局查不到发票
  • 收到税务局退还的个税手续费怎么入账
  • 什么是成本费用,什么是经营成本
  • 财税公司工作内容
  • mysql 非聚集索引
  • win10exe文件关联修复
  • 微软edge浏览器在哪
  • mac自带中文输入法
  • ubuntu server initramfs
  • Ubuntu安装VMware tools
  • win7自动更新在哪
  • linux批量处理
  • cocoswot
  • jquery 图片
  • AngularJS中controller控制器继承的使用方法
  • javascript 数字类型
  • Nodejs+express+ejs简单使用实例代码
  • 举例说明json数据格式的语法
  • javascript异常
  • js如何使用
  • 石油产品消费税征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设