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

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

  • 虚伪世界伤了谁的浮华(虚伪的世界歌曲)

    虚伪世界伤了谁的浮华(虚伪的世界歌曲)

  • 怎么知道抖音是什么时候发的(怎么知道抖音是不是最新版本)

    怎么知道抖音是什么时候发的(怎么知道抖音是不是最新版本)

  • 能不能把别人的微信推给别人(能不能把别人的微信信息导出来)

    能不能把别人的微信推给别人(能不能把别人的微信信息导出来)

  • 小米wifi放大器连不上(小米wifi放大器连不上路由器)

    小米wifi放大器连不上(小米wifi放大器连不上路由器)

  • 抖音下载功能怎么开启(抖音下载功能怎么关闭掉)

    抖音下载功能怎么开启(抖音下载功能怎么关闭掉)

  • b站up主的BGM都有版权吗(b站著名bgm)

    b站up主的BGM都有版权吗(b站著名bgm)

  • 小米10为什么只有一个摄像头有用(小米10为什么只有充电时才能换浅色模式)

    小米10为什么只有一个摄像头有用(小米10为什么只有充电时才能换浅色模式)

  • ppt手机什么意思(手机ppt介绍)

    ppt手机什么意思(手机ppt介绍)

  • 怎么设置微信进账提醒(怎么设置微信进入服务需要密码)

    怎么设置微信进账提醒(怎么设置微信进入服务需要密码)

  • eva-tl00是什么型号(eva tl00)

    eva-tl00是什么型号(eva tl00)

  • 淘宝换货可以换几次(淘宝换货可以换不同款吗)

    淘宝换货可以换几次(淘宝换货可以换不同款吗)

  • 手机怎么看中央5台(手机怎么看中央一台节目)

    手机怎么看中央5台(手机怎么看中央一台节目)

  • 腾讯地图怎么添加商户(腾讯地图怎么添加商家位置)

    腾讯地图怎么添加商户(腾讯地图怎么添加商家位置)

  • win10wifi有个白色星号(win10wifi列表一片空白)

    win10wifi有个白色星号(win10wifi列表一片空白)

  • 携程的优享预定20元怎么取消(携程的优享预定可以取消吗?)

    携程的优享预定20元怎么取消(携程的优享预定可以取消吗?)

  • 没电脑怎么下爱思助手(没电脑怎么下爱思极速版)

    没电脑怎么下爱思助手(没电脑怎么下爱思极速版)

  • 固定电话呼叫转移怎么设置(固定电话呼叫转移业务包括什么类型)

    固定电话呼叫转移怎么设置(固定电话呼叫转移业务包括什么类型)

  • iphonex怎么调控制中心(苹果x怎么控制亮度)

    iphonex怎么调控制中心(苹果x怎么控制亮度)

  • 拼多多商品描述怎么写(拼多多商品描述或质量抽检不合格怎么处罚)

    拼多多商品描述怎么写(拼多多商品描述或质量抽检不合格怎么处罚)

  • 亲测 Windows11密钥/激活码分享 附激活工具(windows 11密钥)

    亲测 Windows11密钥/激活码分享 附激活工具(windows 11密钥)

  • 电脑guest关闭方法(关闭guest账户)

    电脑guest关闭方法(关闭guest账户)

  • Mac从睡眠恢复后没有声音怎么办?没有声音解决办法(mac睡眠后无法正常唤醒)

    Mac从睡眠恢复后没有声音怎么办?没有声音解决办法(mac睡眠后无法正常唤醒)

  • win10任务栏隐藏设置教程(win10任务栏隐藏正在运行的程序)

    win10任务栏隐藏设置教程(win10任务栏隐藏正在运行的程序)

  • 七个超级实用的 Vue 3 插件和库(七个超级实用的手机)

    七个超级实用的 Vue 3 插件和库(七个超级实用的手机)

  • 个体工商户的免税政策
  • 支付客户劳务费怎么操作
  • 员工拓展活动方案范文
  • 企业所得税税前扣除凭证管理办法
  • 收到返利款怎么做账
  • 季度所得税申报表怎么申报
  • 其他应付款年终怎么结转
  • 公司租用个人房屋如何记账
  • 持有待售固定资产为什么不计提折旧
  • 个体户查账征收怎么交税?
  • 收客户逾期利息账务处理怎么做?
  • 增值税附征优惠政策
  • 摊销费用怎么计提
  • 法人存入公户实收资本可以还其他应付款吗
  • 个体户核定征收超过了怎么办
  • 显示已申报税额
  • 增值税专用发票利润怎么交税
  • 实收资本的印花税减半征收吗
  • 已抵扣发票红冲后发票还给对方公司
  • 关于城建税教育费附加地方教育附加的计算
  • 个人销售比例用什么函数
  • 纳税人证明是完税证明吗
  • 建筑安装工程费用人工费计算方式
  • 公司双方签订协议书范本
  • 发票查出来显示不一致是为啥
  • 社保支付账号是什么
  • 待认证进项税额转出会计分录
  • 企业收到利息收入开发票吗
  • 鸿蒙系统怎么同步数据
  • 苗木发票抵扣政策2021
  • 公司撤股后还要担责任吗
  • 企业与政府所签的合同
  • 罚款计入营业外支出影响当期损益
  • vue定时调用方法
  • springboot基本结构
  • ubuntu系统日志配置文件
  • c语言fgets函数用法stdin
  • 生产辅助
  • 建设工程合同从完成承包的内容进行划分
  • mysql数据库的设计与实现
  • 税控系统技术维护费会计处理280
  • 补充协议有用吗
  • 职工薪酬费用属于什么费用
  • 企业购进的固定资产
  • 投标保证金支付给谁
  • 建筑业发票可以抵扣制造业进项
  • 建筑工程公司收入来源
  • 在建工程不做了发生的费用如何做账?
  • 培训费开增值税专用发票可以抵扣吗
  • 新注册的公司怎么申报个税
  • 物业管理企业应履行的义务包括
  • 外接法实物图
  • win10鼠标指针在文本区很小
  • U盘安装centos 7出现unknown chipset
  • sata驱动怎么装
  • windows7怎
  • win8点击桌面没反应
  • linux unhide
  • 电脑操作系统7
  • redhat linux8
  • windows8如何进入bios
  • cocos2dx schedule
  • Android OpenGL ES(五)----进入三维正交投影和透视投影推导
  • javascript自定义属性
  • python三角形角度
  • js实现apply函数
  • js如何获取url
  • nodejs发送post请求
  • node.js中的http.response.writeHead方法使用说明
  • 搭建入门
  • linux命令提示符
  • nodejs 静态页面
  • android线程间通信的几种方法
  • javascript的简介
  • 禁止所有陌生人的来电设置
  • javascript的主要功能
  • js中构造函数怎么写
  • 报价单盖什么公章
  • 个人所得税完税证明
  • etc可以抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设