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

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

  • 个人应纳税所得额20万交多少税
  • 税务会计常用会计科目
  • 出口退税调整后退税率包括什么档次
  • 核定征收企业所得税暂行办法
  • 企业所得税年报补报
  • 简易计税方法的销售额不包括其应纳税额
  • 物业缴纳发票可以抵税吗
  • 外来建安企业的税收管理
  • 职工教育经费怎么花
  • 房地产土地增值税的算法
  • 采购商品的运费计入成本的会计分录
  • 直接减免的增值税属于财政性资金吗
  • 政府补贴装修费怎么算
  • 预收电费结转成本怎么办
  • 取得运输部门开具的增值税专用发票
  • 特别纳税调整后 需要更正申报吗
  • 耕地占用税如何做账
  • 住宿费发票开错了可以重新开吗
  • 物流公司零税率发票是怎么回事?
  • 减免税金需要结转吗
  • 可供出售金融资产新准则叫什么
  • 注销未分配利润怎么处理账务
  • 吸收合并公司后的债务处理
  • vpn加速有什么用呢?
  • 预收款交税未开发票申报表怎么
  • win7系统中怎么找不到投影仪
  • win10系统如何开启蓝牙
  • 非货币性资产交换和债务重组的区别
  • PHP:session_unregister()的用法_Session函数
  • 外币报表折算差额计入其他综合收益
  • win7纯净版系统官网
  • vue public assets
  • 正则表达式u4e00
  • 公转私备注用途
  • 破产企业发放工资怎么算
  • 代理费与代理运费的区别
  • 暂估入库后发票来不了
  • python猜数字1到1000代码
  • 个税各项减扣标准金额
  • 减按10%的税率是什么意思
  • 物流公司账务处理特点
  • 国际货运代理公司个人货物
  • 租赁公司成本如何计算
  • 2022年最新装修风格
  • csv文件导入到pycharm时报错
  • 残保金 滞纳金
  • 用友u8固定资产减少怎么撤销
  • 计提工资和发放工资可以在一张凭证上吗
  • 月末结存材料的实际成本例题
  • 固定资产核销是资产损失吗
  • 企业现金购货限额
  • 跨境电商怎么交流
  • 存货周转率多少算低
  • 事业单位扶贫费用怎么做账
  • 原始凭证和记账凭证的填制
  • 固定资产损失计入什么科目
  • 应付利润属于什么科目类别
  • 国家医疗保障机构
  • 关税用什么会计科目
  • mysql如何实现多表查询
  • sql server中的权限包括哪三种类型
  • navicat远程连接oracle
  • window如何恢复系统
  • windows vista可以换7吗
  • win2008远程桌面闪退
  • fedora win10
  • 5个经常被忽略的成语
  • win10系统回收站在哪
  • linux w
  • 如何知道自己的邮箱号
  • gridview添加数据
  • Android studio DrawerLayout
  • jquery获取动态生成的元素的值
  • Windows下python2.7.8安装图文教程
  • android toolbar menu
  • 道路运输业属于工贸行业吗
  • 货物税费
  • 全国税务系统全面从严治党工作会议2023年
  • 平板电脑购物
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设