当前位置:首页 > 日记 > 正文

关于Vue.nextTick | 的正确使用方法浅析

关于Vue.nextTick | 的正确使用方法浅析

本文主要给大家介绍了关于Vue.nextTick()的正确使用,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

什么是Vue.nextTick()

官方文档解释如下:

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

我理解的官方文档的这句话的侧重点在最后那半句获取更新后的DOM,获取更新后的DOM言外之意就是什么操作需要用到了更新后的DOM而不能使用之前的DOM或者使用更新前的DOM或出问题,所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码,比如Swiper扩展包的

var swiper = new Swiper('.swiper-container', {   pagination: '.swiper-pagination',   nextButton: '.swiper-button-next',   prevButton: '.swiper-button-prev',   paginationClickable: true,   spaceBetween: 30,   centeredSlides: true,   autoplay: 2500,   autoplayDisableOnInteraction: false  });

什么时候需要用的Vue.nextTick()

  • 你在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中。原因是什么呢,原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,而此时进行DOM操作无异于徒劳,所以此处一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。与之对应的就是mounted钩子函数,因为该钩子函数执行时所有的DOM挂载和渲染都已完成,此时在该钩子函数中进行任何DOM操作都不会有问题 。
  • 在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的DOM结构的时候,这个操作都应该放Vue.nextTick()的回调函数中。

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

当你设置 vm.someData = 'new value',DOM 并不会马上更新,而是在异步队列被清除,也就是下一个事件循环开始时执行更新时才会进行必要的DOM更新。如果此时你想要根据更新的 DOM 状态去做某些事情,就会出现问题。。为了在数据变化之后等待 Vue 完成更新 DOM ,可以在数据变化之后立即使用 Vue.nextTick(callback) 。这样回调函数在 DOM 更新完成后就会调用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

相关文章

ES6新特性四:变量的解构赋值实例

ES6新特性四:变量的解构赋值实例

赋值,新特性,变量,实例,电脑软件,本文实例讲述了ES6新特性之变量的解构赋值。分享给大家供大家参考,具体如下:1. 数组的解构赋值//① 可以从数组中提取值,按照对应位置,对变量赋值var [a, b] = [1, 2]; //a = 1;b = 2//② 下面是一些使用嵌套数…

win8系统的word2013自动生成目录教

win8系统的word2013自动生成目录教

系统,教程,自动生成,目录,电脑软件,  win8现在使用的越来越普片,随着而来的很多问题也需要我们去解决,因此只有不断学习,不断进步了。那么下面就由小编给大家分享下win8系统下的word2013自动生成目录的技巧,希望能帮助到您。自动生成目录的步…

js实现不提示直接关闭网页窗口

js实现不提示直接关闭网页窗口

提示,网页,窗口,电脑软件,js,项目需要,用户在关闭当前页面时,可以点击页面中的按钮直接关闭网页窗口,但是不需要提示用户是否关闭窗口。在网上找了下,使用添加一句如下代码即可:window.open(‘','_self');function closePageForm(){ window.…

WPS演示如何使用荧光笔标记功能

WPS演示如何使用荧光笔标记功能

演示,标记,功能,如何使用,电脑软件,  在演讲过程中为了便于说明重点都会进行标记注释,熟练使用WPS演示中的荧光笔可以帮助演讲者更好的完成演讲过程。以下是小编为您带来的关于WPS演示使用荧光笔标记功能,希望对您有所帮助。WPS演示使用荧…

excel2013如何使用选择性粘贴功能

excel2013如何使用选择性粘贴功能

方法,选择性,功能,如何使用,电脑软件,  Excel2013提供了使用方便且功能强大的选择性粘贴功能,除了普通的粘贴外,还提供多种不同用途的粘贴方式。下面小编教你怎么在excel2013中使用选择性粘贴功能的方法,欢迎大家来到学习。excel2013中使用…

JavaScript 数据类型详解

JavaScript 数据类型详解

数据类型,详解,电脑软件,JavaScript,一,数据类型以下内容基于ES5(ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型。)JavaScript是一种弱类型动态语言,定义变量时无需指定类型,看似简单,但背后有繁琐…

怎么更改Excel2007插入图形的线条

怎么更改Excel2007插入图形的线条

图形,线条,颜色,电脑软件,  作为一个Excel菜鸟,就应该多学点Excel表格的操作方法。比如怎么修改插入图形的线条颜色,其实这个操作不是很难。以下是小编为您带来的关于更改Excel2007插入图形的线条颜色,希望对您有所帮助。更改Excel2007插入…

为输入框加入数字js校验代码分享

为输入框加入数字js校验代码分享

校验,数字,输入框,代码分享,电脑软件,js限制只能数字输入,并且在把输入的“非法字符”清除掉之后将焦点停留在输入非法字符的位置,参考如下:html部分:<input value="" type="text" onkeyup="javascript:RepNumber(this)">JavaScript部分:…

怎么在WPS表格中绘制xy散点图WPS表

怎么在WPS表格中绘制xy散点图WPS表

绘制,步骤,方法,表格,电脑软件,  排列在工作表的列或行中的数据可以绘制到XY散点图中。散点图显示若干数据系列中各数值之间的关系,或者将两组数绘制为xy坐标的一个系列。下面小编就教你怎么在WPS表格中绘制xy散点图。WPS表格中绘制xy散点…

jQuery鼠标移动上实现放大效果

jQuery鼠标移动上实现放大效果

鼠标移动,效果,电脑软件,jQuery,首先界面上要有图片,下面是图片<img id="big-circle" src="images/pic2.jpg" alt=""/>其次在script代码段中加入如下代码,进行适量修改即可$(document).ready(function () { var x = 10; var y …

wps表格续表有什么种类应该怎么使

wps表格续表有什么种类应该怎么使

种类,有什么,表格,电脑软件,wps,  我们在WPS排版的时候,总会遇到表格不在同一页的情况,如何续表就成了不可忽略的问题,大概分为两种,一种是续表的标题行,另一种就是在下一页表上,标注续表字样。以下是小编为您带来的关于wps表格续表,希望对您有…

怎么在Excel2007中插入数学公式在E

怎么在Excel2007中插入数学公式在E

数学公式,步骤,方法,电脑软件,strong,  写教案,出考题等都会用到数学公式,那么怎么在Excel2007中插入数学公式呢?下面小编来告诉你怎么在Excel2007中插入数学公式吧。在Excel2007中插入数学公式的步骤打开excel表格,将光标定位在需要插入公…