位置: IT常识 - 正文

vue3使用nextTick(vue3使用ref获取元素)

编辑:rootadmin
vue3使用nextTick 发现nextTick必须放在修改一个响应式数据之后,才会在onUpdated之后被调用,如果nextTick是放在所有对响应式数据修改之前,则nextTick里面的回调函数会在onBeforeUpdate方法执行前就被调用了。可是nextTick必须等到onUpdated执行完成之后执行,才能拿到渲染得到的dom下面发请求的时候是没有使用async的(Promise的语法糖),它里面的then函数对serverRef的修改,会再一次触发组件重新渲染,也就是onBeforeUpdate和onUpdated又被回调了一次,也就是说,下面的toggleColor这个方法,触发了2次渲染。---onBeforeMounted---RefImpl {__v_isShallow: false, dep: undefined, __v_isRef: true, _rawValue: null, _value: null}---mounted---RefImpl {__v_isShallow: false, dep: undefined, __v_isRef: true, _rawValue: span, _value: span}halo world---onBeforeUpdate------onUpdated---RefImpl {__v_isShallow: false, dep: undefined, __v_isRef: true, _rawValue: button, _value: button}nextTick1res ojbk---onBeforeUpdate------onUpdated---nextTick2<template> <div style="display: flex;"> <ul class="ul-list"> <li v-for="i in num" :id="'li'+i" >{{ i }}</li> </ul> <div class="div-desc"> <input type="text" v-model="n"> <button @click="handleClick">修改num</button> <br> <br> <button @click="toggleColor">切换span颜色</button> <span ref="spanRef" :style="{color:colorRef}">span</span> *{{ serverResp }}* <button v-if="isShow" ref="btnRef">dd</button> </div> </div></template><script lang="ts" setup> import { ref,reactive,onBeforeMount,onMounted,onBeforeUpdate,onUpdated,nextTick,getCurrentInstance } from 'vue' const { proxy } = getCurrentInstance() let num = ref(10) let n = ref(10) const btnRef = ref(null) let isShow = ref(false) let serverResp = ref('') const spanRef = ref(null) const handleClick = () => { num.value = parseInt(n.value) } const colorRef = ref('') const toggleColor = () => { debugger proxy.Request({ url:'http://localhost:8083/test' }).then(res=>{ debugger console.log('res',res); serverResp.value = res nextTick(()=>{ // 要放在对响应式数据修改之后 debugger console.log('nextTick2'); }) }) debugger isShow.value = true nextTick(()=>{ // 要放在对(至少一个)响应式数据修改之后, // 否则这里函数调用将拿不到btnRef,必须要等到onUpdated回调之后,执行nextTick里面的回调才能拿到btnRef debugger console.log(btnRef); console.log('nextTick1'); }) if(colorRef.value === 'red') { colorRef.value = 'blue' } else { colorRef.value = 'red' } num.value = num.value - 1 debugger console.log('halo world'); } onBeforeMount(() => { console.log('---onBeforeMounted---') console.log(spanRef); }) onMounted(()=>{ console.log('---mounted---') console.log(spanRef); spanRef.value.style.color = 'cyan' }) onBeforeUpdate(()=>{ debugger console.log('---onBeforeUpdate---') }) onUpdated(()=>{ debugger console.log('---onUpdated---') })</script><style lang="scss"> .ul-list { width: 100px; } .div-list { width: 300px; }</style>

推荐整理分享vue3使用nextTick(vue3使用ref获取元素),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3使用vuex,vue3使用ref,vue3使用技巧,vue3使用技巧,vue3使用ref获取元素,vue3使用vuex,vue3使用vuex还是pinia,vue3使用vuex还是pinia,内容如对您有帮助,希望把文章链接给更多的朋友!

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

上一篇:由浅入深介绍 Python Websocket 编程(由浅入深英语怎么说)

下一篇:设置背景图片大小的方法(设置背景图片大小和元素的大小一致的代码)

  • 淘宝收货手机号怎么隐藏(淘宝收货手机号更改)

    淘宝收货手机号怎么隐藏(淘宝收货手机号更改)

  • 小米耳机可以连接苹果手机吗(小米耳机可以连接电脑吗)

    小米耳机可以连接苹果手机吗(小米耳机可以连接电脑吗)

  • 微信运动在哪里 苹果(微信运动在哪里开启和关闭)

    微信运动在哪里 苹果(微信运动在哪里开启和关闭)

  • 荣耀x10max有高刷新率吗(华为荣耀x10max多少hz刷新率)

    荣耀x10max有高刷新率吗(华为荣耀x10max多少hz刷新率)

  • 华为手机nova5机身尺寸(华为nova5p手机)

    华为手机nova5机身尺寸(华为nova5p手机)

  • 一天开关机一次对手机有害吗(一天开关机一次伤机吗)

    一天开关机一次对手机有害吗(一天开关机一次伤机吗)

  • 抖音保证金能退吗(抖音保证金能退到私人账号吗)

    抖音保证金能退吗(抖音保证金能退到私人账号吗)

  • 华为nova7se导航键怎么设置(华为nova7设置导航)

    华为nova7se导航键怎么设置(华为nova7设置导航)

  • 平板可以连接打印机吗(平板可以连接打印机开发票吗)

    平板可以连接打印机吗(平板可以连接打印机开发票吗)

  • 苹果保修期和激活日期不对(苹果保修期和激活日期差20天正常吗)

    苹果保修期和激活日期不对(苹果保修期和激活日期差20天正常吗)

  • 三星手机屏幕有一道线(三星手机屏幕有残影)

    三星手机屏幕有一道线(三星手机屏幕有残影)

  • 为什么连蓝牙网络变差(为什么连蓝牙网易云自动弹出来)

    为什么连蓝牙网络变差(为什么连蓝牙网易云自动弹出来)

  • 腾讯微云占用手机空间吗(腾讯微云占不占手机内存)

    腾讯微云占用手机空间吗(腾讯微云占不占手机内存)

  • vivo手机深色模式有什么用(vivo手机深色模式省电吗)

    vivo手机深色模式有什么用(vivo手机深色模式省电吗)

  • word文档如何调节字间距(word文档如何调节页边距)

    word文档如何调节字间距(word文档如何调节页边距)

  • 联想笔记本怎么做系统(联想笔记本怎么看配置和型号)

    联想笔记本怎么做系统(联想笔记本怎么看配置和型号)

  • 安卓手机ip是固定的吗(安卓手机ip是固定地址吗)

    安卓手机ip是固定的吗(安卓手机ip是固定地址吗)

  • 荣耀20pro遥控器在哪(荣耀20 遥控)

    荣耀20pro遥控器在哪(荣耀20 遥控)

  • 微信爱心怎么打出来(微信爱心怎么打字打出心形)

    微信爱心怎么打出来(微信爱心怎么打字打出心形)

  • 华为mate305g和4g的区别(华为mate305g和4g大小一样吗)

    华为mate305g和4g的区别(华为mate305g和4g大小一样吗)

  • aspx页面怎么修改(aspx页面设计)

    aspx页面怎么修改(aspx页面设计)

  • miui10哪里查询开机时间(小米10怎么看开了哪些程序)

    miui10哪里查询开机时间(小米10怎么看开了哪些程序)

  • adblog储存有什么用(adblog存储限制vivo怎么恢复默认)

    adblog储存有什么用(adblog存储限制vivo怎么恢复默认)

  • 抖音怎么关闭72小时(抖音怎么关闭7天无理由退货)

    抖音怎么关闭72小时(抖音怎么关闭7天无理由退货)

  • 一号店如何解绑银行卡(一号店怎么变成一号会员店了)

    一号店如何解绑银行卡(一号店怎么变成一号会员店了)

  • FAT文件系统无法通过U盘制作系统安装盘(fat文件系统包括)

    FAT文件系统无法通过U盘制作系统安装盘(fat文件系统包括)

  • 被白雪覆盖的彩虹山,秘鲁 (© Jude Newkirk/Amazing Aerial Agency)(被白雪覆盖的彩虹歌词)

    被白雪覆盖的彩虹山,秘鲁 (© Jude Newkirk/Amazing Aerial Agency)(被白雪覆盖的彩虹歌词)

  • Vue中二级菜单的实现(vue二级菜单的隐藏与显示)

    Vue中二级菜单的实现(vue二级菜单的隐藏与显示)

  • YOLOv8(n/s/m/l/x)&YOLOv7(yolov7-tiny/yolov7/yolov7x)&YOLOv5(n/s/m/l/x)不同模型参数/性能对比(含训练及推理速度)

    YOLOv8(n/s/m/l/x)&YOLOv7(yolov7-tiny/yolov7/yolov7x)&YOLOv5(n/s/m/l/x)不同模型参数/性能对比(含训练及推理速度)

  • 10分钟学会python对接【OpenAI API篇】(10分钟学会万用表)

    10分钟学会python对接【OpenAI API篇】(10分钟学会万用表)

  • 增值税电子普票没有电子章有效吗
  • 纳税人进口货物应当自海关填发税款
  • 关税完税价格是到岸价吗
  • 进项税转出的发票怎么认证
  • 进行利润分配时必须遵循的原则
  • 职工食堂开支会计处理
  • 银行的抵债资产是什么
  • 非独立核算分公司企业所得税
  • 房屋出租收入其税收如何计算呢?
  • 17%增值税发票怎么计算成13%
  • 建帐时库存的原材料如何入帐?
  • 销售产品收取的价款
  • 企业借款给个人合法吗
  • 门店装修会计怎样处理帐?
  • 餐饮业是否可以开专用发票
  • 建筑行业包含哪些项目
  • 个人买卖二手房增值税
  • 收到政府征地补偿款
  • 公司开设食堂需要哪些手续
  • 汇算清缴纳税调整项目明细表怎么填
  • 核定征收的企业利润怎么处理
  • 鸿蒙系统怎么开启开发者权限
  • 个人所得税汇算清缴包括哪些项目
  • 非公开发行股票是利好还是利空
  • win10待机屏幕图片设置
  • 安装adsl modem必须安装什么协议
  • 育空怀特霍斯附近的北极光,加拿大 (© Design Pics/Danita Delimont)
  • 实收资本大于注册资本是什么意思
  • vue element ui教程
  • 外币借款业务的特点包括
  • 资产负债表利润表和现金流量表
  • 集团对子公司拨款的规定
  • /f命令
  • 查补税款
  • 销售不动产预征率是多少
  • 机票退票手续费新规定2023
  • 低于净资产增资 纳税
  • 固定资产投资入股是否缴纳增值税
  • mysql无法连接到服务器
  • pythonjam怎么用
  • 业务员奖金
  • 工业企业缴纳增值税吗
  • mysql添加远程访问
  • 工程分包合同协议书
  • 低值易耗品费用计入产品成本的方式有哪几种
  • 估价入账的账务处理
  • 建筑劳务清包工账务处理
  • 税务机关多收税款几年可以要求退回
  • 公司注销流程是哪些
  • 将本月发生的制造费用在甲、乙产品之间
  • 充值优惠怎么写
  • 房地产预交税金怎么算
  • 退回的附加税能退回来吗
  • 怎样理解企业财务会计的定义
  • 登记总分类账的依据有
  • sql查询界面怎么做
  • sqlbean
  • centos真机安装后只有lo
  • linux里find命令
  • win8怎么打开系统设置
  • win7系统进不了桌面
  • Win10怎么添加游戏
  • extJS中常用的4种Ajax异步提交方式
  • nodejs初始化
  • mongo 安装
  • css svg滤镜
  • jquery图片轮播无缝连接
  • nodejs邮件
  • javascript实现2016新年版日历
  • 如何使用wordpress
  • Javascript Object 对象学习笔记
  • 你真的了解摩羯座吗
  • js如何实现图片轮播
  • 甘肃国家税务局官网app
  • 苗木税收政策
  • 高级人民法院党组书记级别
  • 湖北省地方税务局公告2014年第7号
  • 上海浦东税务局电话 工作时间
  • 云南4050人员2020最新政策
  • 员工持股平台税务稽查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设