首页 > 其他分享 >$nextTick原理及运用

$nextTick原理及运用

时间:2022-09-26 23:23:13浏览次数:52  
标签:nextTick Vue DOM 队列 更新 循环 原理 运用

1.Vue.nextTick( [callback, context] ):在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

2.为什么需要它呢?

Vue 是异步修改 DOM 的并且不鼓励开发者直接接触 DOM,但有时候业务需要必须对数据更改–刷新后的 DOM
做相应的处理,这时候就可以使用 Vue.nextTick(callback)这个api 了

解释:Vue是异步执行dom更新的,一旦观察到数据变化,Vue就会开启一个队列,然后把在同一个
事件循环 (event loop)当中观察到数据变化的 watcher 推送进这个队列。如果这个watcher被触发多次,
只会被推送到队列一次。这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和DOm操作。
而在下一个事件循环时,Vue会清空队列,并进行必要的DOM更新。

 

3.理解原理前的准备
首先需要知道事件循环中宏任务和微任务这两个概念

 

1.常见的宏任务有:script, setTimeout, setInterval, setImmediate, I/O, UI rendering
2.常见的微任务有:process.nextTick(nodejs),Promise.then(), MutationObserver



 

标签:nextTick,Vue,DOM,队列,更新,循环,原理,运用
From: https://www.cnblogs.com/mc-congxueda/p/16732950.html

相关文章

  • SAP UI5 sap.ui.layout.Grid 控件宽度百分比的设置原理
    在Chrome开发者工具里使用SAPUI5扩展Inspector修改Grid控件的defaultSpan属性,会触发如下的代码:我们通过调用栈,可以发现SAPUI5Grid相关的框架代码调用,确......
  • Bootstrap 网格系统(Grid System)的工作原理?
    (1)行必须放置在.containerclass内,以便获得适当的对齐(alignment)和内边距(padding)。(2)使用行来创建列的水平组。(3)内容应该放置在列内,且唯有列可以是行的直接子元素。(4)预定......
  • jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
    在默认情况下,通过$.extend()合并操作不是递归的(浅拷贝);如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。这些值不会被合并。然......
  • 使用js实现深拷贝原理
    //任何引用数据类型的值都需要挨个遍历,直到取到基本类型的值为止functiondeepClone(obj){    varcloneObj=Array.isArray(obj)?[]:{};    //判断......
  • NAT原理总结
    一、NAT介绍网络地址转换(NAT,NetworkAddressTranslation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法iP地址的转换技术,它被广泛应用于各种类型Internet接入......
  • 一--Fundamentals of Computer Architecture 计算机体系结构的基本原理
    1.1LayersofComputerSystem计算机系统的层次1.2DefiningComputerArchitecture定义计算机体系结构1.3MeasuringandReportingPerformance测量和报告性能1.4Qu......
  • 海外某音x-gorgon算法原理分析及算法源码公布
    算法源码见附件分享一个去年逆的一个海外版某音1474版本x-gorgon算法,这里简单介绍一下算法原理,首先malloc出来一个0x1A大小的空间,然后截取用户传入的byte数组中的参数,截......
  • 手写vue-router核心原理
    最近也在观察vue3新特性,抽空玩一玩嵌套路由的vue-router,直接上代码项目目录结构代码展示app.vue<template><divid="app"><div><router-linkto="/"......
  • provide 和 inject 用法及原理
    在父子组件传递数据时,通常使用的是props和emit,父传子时,使用的是props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,......
  • 备战面试day01-二进制/字节码文件以及虚拟机跨平台原理
    什么是二进制文件?二进制是机器码,由01组成,能被机器识别的机器指令。可以被CPU直接执行什么是字节码文件?字节码文件是.class作为后缀名的文件,是介于j......