位置: 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 编程(由浅入深英语怎么说)

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

  • 以旧换新销售商品
  • 商贸的增值税税率
  • 税金及附加现金流指定
  • 坏账准备和信用账户区别
  • 停车费可以抵扣个人所得税吗
  • 本期应纳税额减征额怎么填写
  • 企业筹建期间开办费计入什么科目
  • 企业会计一般做什么
  • 分期收款销售货物 收入确认
  • 正常经营损失
  • 汽车融资租赁行业发展趋势
  • 收到借款利息怎么做会计分录
  • 工厂出租厂房税率
  • 广告公司税收分析
  • 安装工程开发票
  • 设定提存计划怎么填
  • 提回对公户收款是什么意思
  • 客户到款打到子公司账上如何转回
  • 发票销货清单需要到税务局吗
  • 个人所得税的税收标准
  • 政府无偿给企业划拨土地是否需摊销
  • 购销合同没写签订日期违法吗
  • 销售额不到10万免征什么税
  • 暂估人工成本分录怎么写
  • 苹果输入法快捷键怎么调出来
  • 华为手机隐藏应用
  • 如何设置win10电脑开机不黑屏
  • 没有一般纳税人证明怎么办
  • 其他应付款年末借方余额
  • php数组函数 菜鸟
  • msmpeng.exe是什么程序
  • win7系统任务计划在哪里
  • 增值税减免后按3%记提税款吗
  • 桑吉尔夫个人简介
  • 亚美尼亚格加尔德修道院
  • thinkphp框架怎么用
  • 报表上如何把账号删除
  • sap abap入门
  • 前端微信小程序支付功能怎么实现
  • nginx gui
  • hostnamectl命令可以永久修改主机名
  • php短信验证
  • 应收账款周转率下降说明什么
  • 非限定性收入属于什么科目?
  • 汇算清缴涉及哪些调整
  • 免税不能抵扣
  • 商业汇票如何申请操作
  • 单一窗口出口报关流程
  • 特殊劳动关系和社会关系
  • 银行对账单电脑上怎么导出
  • 差旅费分摊到各部门
  • 文化事业建设费的征收标准
  • 企业清算所得税申报
  • 可供出售金融资产名词解释
  • 哪些地方中国没有收复
  • 房租转租怎么处理合法
  • 快捷酒店财务一般几个人
  • 公司卖土地怎么避税
  • 新准则下企业开什么发票
  • 购买500元的保险会计分录
  • linux下apache、mysql、php安装配置详细笔记
  • jmeter怎么连接数据库
  • Windows Server 2016技术预览版第四版系统截图曝光 编号10565
  • win10怎么设置为win7模式
  • vista下实现秘密下载的解决办法
  • CentOS上查看系统信息以及配置防火墙的方法
  • u盘安装ubuntu找不到硬盘
  • 运行ghost
  • mousemenu是什么文件夹
  • win8的系统怎么装win7
  • linux限制用户cpu使用
  • 批处理程序教程
  • perl中的$_
  • linux编译链接命令
  • 安卓全局替换
  • jquery trigger 传参数
  • 怎么向税务局举报不开票行为
  • 税务稽查时长
  • 税务备案表的有效期
  • 出口货物免抵税额怎么申报附加税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设