vue中的nextTick有什么用


这篇文章主要讲解了“vue中的nextTick有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中的nextTick有什么用”吧!为什么要用nextTick
请看如下一段代码
我在获取到数据后赋值给数据模型中list属性,然后我想引用ul元素找到第一个li把它的颜色变为红色,但是事实上,这个要报错了,我们知道,在执行这句话时,ul下面并没有li,也就是说刚刚进行的赋值操作,当前并没有引起视图层的更新。因此,在这样的情况下,vue给我们提供了$nextTick方法,如果我们想对未来更新后的视图进行操作,我们只需要把要执行的函数传递给this.$nex 香港云主机tTick方法,vue就会给我们做这个工作。源码解读这个函数很简单,vue2.2.6版本 450行开始。首先,这个函数是采用了一个单利模式还是什么创建的一个闭包函数首先定义了一些变量供之后使用,下面是一个函数这个函数就是$nextTick内实际调用的函数。接下来,是vue分了三种情况来延迟调用以上这个函数,因为$nextTick目的就是把传进来的函数延迟到dom更新后再使用,所以这里依次优雅降序的使用js的方法来做到这一点。1. promise.then延迟调用如果浏览器支持Promise,那么就用Promise.then的方式来延迟函数调用,Promise.then方法可以将函数延迟到当前函数调用栈最末端,也就是函数调用栈最后调用该函数。从而做到延迟。2. MutationObserver 监听变化MutationObserver是h6新加的一个功能,其功能是监听dom节点的变动,在所有dom变动完成后,执行回调函数。具体有一下几点变动的监听childList:子元素的变动attributes:属性的变动characterData:节点内容或节点文本的变动subtree:所有下属节点(包括子节点和子节点的子节点)的变动可以看出,以上代码是创建了一个文本节点,来改变文本节点的内容来触发的变动,因为我们在数据模型更新后,将会引起dom节点重新渲染,所以,我们加了这样一个变动监听,用一个文本节点的变动触发监听,等所有dom渲染完后,执行函数,达到我们延迟的效果。3.setTimeout延迟器利用setTimeout的延迟原理,setTimeout(func, 0)会将func函数延迟到下一次函数调用栈的开始,也就是当前函数执行完毕后再执行该函数,因此完成了延迟功能。闭包函数这个return的函数就是我们实际使用的闭包函数,每一次添加函数,都会想callbacks这个函数数组入栈。然后监听当前是否正在执行,如果没有,执行函数。这个很好理解。下面一个if是promise化。感谢各位的阅读,以上就是“vue中的nextTick有什么用”的内容了,经过本文的学习后,相信大家对vue中的nextTick有什么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: win10任务栏如何添加地址输入框

这篇文章的内容主要围绕win10任务栏如何添加地址输入框进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!win10系统的任务栏中,有一个叫做地址的工具。平时很少用户会使用…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/16 11:06
下一篇 07/16 11:06

相关推荐