位置: 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)(登录页面的实现方式)

  • 进口洋酒能存放多少年
  • 汇算清缴涉及哪些调整
  • 公立医院事业单位录用是编制吗
  • 企业所得税表利润总额怎么填写
  • 超市小票能否入库
  • 需要冲红的普通发票无法收回怎么办
  • 其他应付款是不是长期负债
  • 减半征收附加税会计分录
  • 年度纳税申报时间规定
  • 商品周转天数和周转率
  • 冲减留抵税会计分录
  • 销售产生的增值税
  • 国税实名认证一般是公司里谁去认证的
  • 股权交易要不要缴纳印花税?
  • 顺丰的收派服务费可以抵扣吗
  • 关联交易类型有哪些
  • 分公司不独立核算怎么报税
  • 进口技术服务需要向海关备案吗
  • 光纤熔接发票属什么类别
  • 专用发票可以抵税是什么意思
  • 银行承兑汇票的付款期限
  • 公对公如何转账不用开票
  • 提前预支工资怎么报税
  • PHP:class_implements()的用法_spl函数
  • 限额领料单属于外来原始凭证吗
  • 长期借款的概念
  • 资产减值损失的借贷方向
  • 电脑怎样设置共享文件夹
  • php redis常用命令
  • 摊销专利权会计分录怎么写
  • oppor11s输入法怎么清除记忆
  • phpsessid是什么
  • 超级本轻薄本
  • 投资公司收到境外债务
  • 用库存现金支付装卸费
  • 政策性搬迁补偿收入
  • php映射
  • vue foreach is not a function
  • js构造函数的八种方法
  • 单据已经生成凭证,不允许自动删除
  • 非货币型资产交换CPA
  • 财政总预算会计的主体是
  • 银行借记和贷记一样吗
  • 不单独计价的包装物是什么意思
  • 通过SQL Server 2008数据库复制实现数据库同步备份
  • mysql索引最大数量
  • 库存现金是什么凭证
  • 对外担保的效力
  • 集团公司股份
  • 购买土地的流程
  • 盈利能力分析的理论意义和现实意义
  • 商家代金券谁出钱
  • 存货报废损失会计处理
  • 网上报税流程演示2019
  • 常见开具发票错误详解是?
  • 跨年度费用如何计算
  • 不能抵扣的进项税额转出会计分录
  • 初级会计现值的计算
  • mysql动态sql语句赋值
  • mysql5.7最新版
  • mysql分区是什么意思
  • linux和windows交互
  • 系统升级为中狼
  • win 8系统怎么样
  • vim进阶教程
  • win8修改锁屏壁纸
  • 工商网银登陆
  • win8谷歌浏览器出现无法访问此网站
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • mysql 导出指定表
  • jquery触发点击事件click
  • 用Fragment+ViewPager搭建万能的android界面
  • unity如何导出vr项目
  • 你知道必要的意思吗英文
  • 知道税率怎么算成本
  • 深圳市税务局网上办税大厅官网
  • 哪些保险有免赔额
  • 天津税务局网上办税厅
  • 关联公司销售
  • 工会经费支出审批制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设