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

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

  • 递延所得税负债账务处理
  • 实质课税原则是税法基本原则吗
  • 加工承揽属于劳务关系吗
  • 管理费用中的税金包括哪些
  • 个税手续费返还政策文件
  • 增值税申报时有0.1元差额,怎么申报
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 外地施工如何找工人
  • 冲销以前年度营业外支出
  • 企业工商注销啥意思
  • 计提所得税费用的账务处理
  • 发票丢失怎么做分录
  • 补提折旧调整分录
  • 无形资产没有了
  • 购买的原材料直接用怎么做账
  • 以提供劳务为主营业务的企业
  • 挂靠工程的所得税账务处理怎么做?
  • 进项发票和销项发票金额相同还需要交税金吗
  • 有产权车位转让需要什么手续和费用
  • 银行定期存款的利息是每个月给你吗
  • 捐款属于什么会计科目类别
  • 公司党支部的费用入账
  • 企业债券投资利息怎么算
  • 单位车辆车船税缴纳
  • 投资长期溢价债券,容易获取投资收益
  • PHP:mb_ereg_search_regs()的用法_mbstring函数
  • 在win7系统中如何让电脑恢复出厂设置方法
  • mac系统中文输入法切换
  • 虚拟机vm怎么用
  • PHP:stream_register_wrapper()的用法_Stream函数
  • 定向增发后送股成本价
  • .exe是什么软件
  • 进货后退货的会计处理
  • 塞里雅兰瀑布图片高清
  • 采购过程中发生材料毁损,由保险公司赔偿的部分
  • SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
  • 事业单位委托业务费的现金流量
  • 关于固定资产管理
  • span标签中的字符串怎么获取
  • resize2fs命令 同步文件系统容量到内核
  • 印花税账务处理会计分录
  • 装修公司管理费是什么
  • 财务公司可以开立一般账户吗
  • 增值税是在年末怎么处理
  • 公司向银行贷款利息是多少
  • 公司的零星开支是什么
  • 盘盈材料会计分录
  • 营运资金为正数说明企业什么
  • 商业汇票如何申请操作
  • 送货运杂费属于什么收入
  • 有限公司分公司属于什么类型
  • 进项加计抵扣
  • sql server定时作业
  • 劳务派遣工资可以税前扣除吗
  • 房租收不回来会计分录
  • 收到个人款怎么做分录
  • 收据和收款收据的法律效力
  • 员工垫付的费用会计分录
  • 各类奖金正确的排序
  • 母子公司间借款利息免增值税
  • 车票抵扣税款
  • 公开发行企业债券,发行人累计债券余额
  • 索引的基本原则
  • window系统大全
  • windows怎样设置
  • win8的开始
  • 激素六项雌二醇30
  • 什么是自然数
  • js中的垃圾回收机制有哪些方法
  • 狗刨教学视频分解动作视频
  • jquery获取值的几种方法
  • node.js redis
  • android 多个权限合并 弹窗
  • unity 面向对象
  • js 选择语句
  • js点击
  • javascript基础入门视频教程
  • 自定义dialog屏蔽按键
  • 新疆税务局电子
  • 呼和浩特市契税2021年新规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设