当前位置: 首页 > news >正文

vue2-nextTick

这里是引用

vue2-nextTick

1. 什么是nextTick

  • 先来看官方定义
在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM
  • 云里雾里,啥意思呢,其实本质就是事件循环、同步和异步的问题
  • 不懂事件循环相关问题的 ,看这篇文章
    一文大白话讲清楚javascript同步任务,异步任务,主线程,宏任务,微任务,事件循环以及async和await等关系
  • 说白了,就是VUE在更新DOM时是异步执行的,会开启一个异步更新队列,等待在下一个事件循环中执行这个队列中的所有修改。
  • 那么问题就来了,有时候,我在更新完数据后,想拿到更新后的DOM,怎么办,因为这时候DOM更新可能还在队列里面等待执行呢,这时候我就创建一个回调函数,把这个函数添加到微任务队列中,在更新队列执行完后,会执行所有的微任务队列的回调函数,这样保证回调函数在更新队列执行完之后执行,这个时候我们就可以在回调函数里面获取到更新后的DOM了
  • 那我们怎么把回调函数添加到微任务队列里面呢,就是通过nextTick

2. nextTick的使用

  • Vue.nextTick(callback)和this.nextTick(callback)都可以实现
  • 我们实现一个计数器,利用nextTick获取更新后的DOM
<template><div><p>{{count}}</p><button @click="add">ADD</button></div>
</template>
<script>export default{data(){return{count:0}},methods:{add(){this.count++}}}
</script>
  • 在这个组件中,我们有一个计数器和一个按钮,每次点击按钮,计数器增加1,如果我们在计数器更新后想要拿到更新后的DOM,就可以使用nextTick
 methods:{add(){this.count++this.nextTick(()=>{console.log(this.$el.textContent)})}
}

3. nextTick的应用场景

  1. 在更新DOM后获取DOM状态
  2. 在更新DOM后执行依赖于DOM的操作
  3. 在更新DOM后,执行第三方库
http://www.lryc.cn/news/532296.html

相关文章:

  • 【其他专题】如何在线将PNG转ICO图标
  • 2019_AutoInt
  • HAL库 Systick定时器 基于STM32F103EZT6 野火霸道,可做参考
  • 使用 Postman 进行 API 测试:从入门到精通
  • K8s 分布式存储后端(K8s Distributed Storage Backend)
  • 基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper
  • Centos7 安装 RabbitMQ与Erlang
  • mybatis-plus的分页查询简单使用
  • 剑指 Offer II 014. 字符串中的变位词
  • 富唯智能复合机器人拓展工业新维度
  • 【大数据技术】搭建完全分布式高可用大数据集群(Scala+Spark)
  • solidity高阶 -- 调用接口合约
  • 若依框架使用(低级)
  • 找不到 MSVCP120.dll
  • AI软件栈:LLVM分析(三)
  • openwebui入门
  • Spark--如何理解RDD
  • CTFSHOW-WEB入门-PHP特性89-100
  • [250204] Mistral Small 3:小巧、快速、强大 | asdf 0.16.0 发布:Golang 重写带来性能飞跃
  • PySpark学习笔记5-SparkSQL
  • windows版的docker如何使用宿主机的GPU
  • Python爬虫:1药城店铺爬虫(完整代码)
  • 代码随想录算法训练营打卡第55天:并查集相关问题;
  • K8S学习笔记-------1.安装部署K8S集群环境
  • 云原生周刊:K8s引领潮流
  • C_位运算符及其在单片机寄存器的操作
  • 【算法篇】贪心算法
  • Selenium 浏览器操作与使用技巧——详细解析(Java版)
  • ioDraw桌面版 v3.4.0发布!AI文生图,AI图生图,手绘风格一键转换!
  • 深入理解Node.js_架构与最佳实践