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

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

  • 苹果手表怎么设置闹钟(苹果手表怎么设置键盘)

    苹果手表怎么设置闹钟(苹果手表怎么设置键盘)

  • iwatch7怎么关机(apple watch关机)

    iwatch7怎么关机(apple watch关机)

  • 美版抖音怎么不能看(下了美版抖音打开什么都没有)

    美版抖音怎么不能看(下了美版抖音打开什么都没有)

  • 华为荣耀8x手机电池能换吗(华为荣耀8x手机屏幕多少钱)

    华为荣耀8x手机电池能换吗(华为荣耀8x手机屏幕多少钱)

  • 怎样删除抖音多闪功能(怎样删除抖音多余的账号)

    怎样删除抖音多闪功能(怎样删除抖音多余的账号)

  • 人脸识别禁用多久恢复(人脸识别禁用多久可以再用)

    人脸识别禁用多久恢复(人脸识别禁用多久可以再用)

  • 三星猎户座980处理器相当于骁龙多少(三星猎户座980处理器相当于麒麟多少)

    三星猎户座980处理器相当于骁龙多少(三星猎户座980处理器相当于麒麟多少)

  • 微信看不到对方的个性签名(微信看不到对方头像是不是被拉黑了)

    微信看不到对方的个性签名(微信看不到对方头像是不是被拉黑了)

  • 为什么电脑很卡 反应很慢(为什么电脑很卡很慢)

    为什么电脑很卡 反应很慢(为什么电脑很卡很慢)

  • 华为nova7怎么插耳机(华为nova7怎么插卡图解教程)

    华为nova7怎么插耳机(华为nova7怎么插卡图解教程)

  • 充电暖宝宝里的液体是什么(充电暖宝宝里的水能换吗)

    充电暖宝宝里的液体是什么(充电暖宝宝里的水能换吗)

  • 为什么抖音打不开(为什么抖音打不了视频)

    为什么抖音打不开(为什么抖音打不了视频)

  • 企业微信会被投诉封号吗(企业微信被人恶意举报怎么办)

    企业微信会被投诉封号吗(企业微信被人恶意举报怎么办)

  • 哪一款ipad支持无线充电(哪一款ipad支持120帧)

    哪一款ipad支持无线充电(哪一款ipad支持120帧)

  • 华为lne-al00什么型号(华为手机ine-al00)

    华为lne-al00什么型号(华为手机ine-al00)

  • 手机cpu频率多少才流畅(手机cpu频率多少合适)

    手机cpu频率多少才流畅(手机cpu频率多少合适)

  • mate30pro支持5g吗(mate30pro支持5G吗)

    mate30pro支持5g吗(mate30pro支持5G吗)

  • l0n一al00是什么型号手机(ⅴky一al00是什么型号)

    l0n一al00是什么型号手机(ⅴky一al00是什么型号)

  • pe重装系统步骤(pe重装系统步骤图)

    pe重装系统步骤(pe重装系统步骤图)

  • vivoy7s什么时候上市(vivoy7s什么时候出厂的)

    vivoy7s什么时候上市(vivoy7s什么时候出厂的)

  • 苹果xs玩游戏发热吗(苹果xs玩游戏发热卡顿怎么解决)

    苹果xs玩游戏发热吗(苹果xs玩游戏发热卡顿怎么解决)

  • 最新 Award Bios 设置全程图解教程(biospwds最新版)

    最新 Award Bios 设置全程图解教程(biospwds最新版)

  • ipados16发布时间(ipados15什么时候发布)

    ipados16发布时间(ipados15什么时候发布)

  • vue实现数据实时刷新(vue数据实时更新)

    vue实现数据实时刷新(vue数据实时更新)

  • Chrome浏览器快捷键大全(chrome浏览器快捷方式)

    Chrome浏览器快捷键大全(chrome浏览器快捷方式)

  • 城市公交算国企吗
  • 税金及附加如何记账
  • 发票已经报送怎么处理
  • 规划设计合同需要缴纳印花税吗为什么
  • 现金流量怎么影响股票价值
  • 关联企业往来款 利息
  • 子公司注销母公司合并报表处理
  • 企业的银行存款
  • 分包工程违法吗
  • 赊销固定资产会计科目
  • 购买实验器材会计分录
  • 进货方的现金折扣怎么处理?
  • 工会经费滞纳金税率
  • 增值税转售行为怎么做会计处理?
  • 哪些费用可以税后扣除
  • 税款滞纳金可以退吗
  • 简易计税进项税额转出公式
  • 个体户小规模纳税人每月开票
  • 免租金期间交增值税吗
  • 鸿蒙工具栏在哪里
  • 扣缴义务人申报和综合所得年度自行申报
  • 高新技术企业研发
  • 发票如何认证及开票
  • 资产负债表短期负债包括哪些
  • linux不能联网怎么解决
  • 应交税金的含义
  • 公司并购的税务处理办法
  • uniapp获取window对象
  • php 5
  • php数组数据结构
  • php重定向伪造referer
  • 银行对账单附在记账凭证中吗
  • 购买的服务怎么做账
  • 固定资产计提折旧的方法
  • 应付职工薪酬账户期末余额可能是
  • 小规模增值税减征额怎么算
  • 暂估库存商品计算怎么算
  • mongodb用法
  • mongodb bi
  • 折旧的结转
  • 汽车修理费用会计分录
  • 企业工会经费计提比例
  • sqlserver强制转换为字符
  • 豆制品属于农副产品吗为什么
  • 借款利息税前扣除应当注意的三个问题
  • 专票已认证还能作废吗
  • 注销时其他应付款怎么冲平
  • 退休人员的返聘合同
  • 房地产行业扣税标准
  • 财务报销单据粘贴视频
  • 在建工程抵押贷款的用途为在建工程继续建造所需资金
  • 成本利润率多少是正常的
  • 结转销项税额至未交增值税的结转系数
  • 应付职工薪酬包括辞退福利吗
  • 金税盘技术维护费可以抵扣吗
  • mysql数据库基本知识点总结
  • bios里怎么找不到usb启动
  • 开机越来越慢会不会是硬件的问题
  • 硬盘安装xp系统安装教程
  • wind10怎么重置网络
  • 微软账号重新登录
  • centos chrony
  • win10如何设置默认应用语言
  • win8打开ie浏览器
  • linux跨服务器调用shell脚本
  • ie11滚动条样式
  • glviewport超出屏幕范围
  • opengl超级宝典第八版 pdf
  • shell 替换文件中匹配的内容
  • js settimeout用法
  • shell脚本学习指南
  • 深入理解新发展理念,推进供给侧结构性改革
  • vue移动端app开发流程
  • node用什么写的
  • jquery获取某个属性的值
  • Android性能优化的方面12个
  • jquery循环生成li
  • 票折与票扣的区别在哪里
  • 内审工作流程及内审中常见的问题
  • 非居民企业机构场所核定征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设