this.$nextTick()

this.$nextTick():https://www.cnblogs.com/haishen/p/10807691.html

        https://www.cnblogs.com/2019yjy/p/11492703.html

 

Vue.nextTick 的原理和用途:https://segmentfault.com/a/1190000012861862

 

$nextTick

  Vue.nectTick() 是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后使用$nextTick,则可以在回调中获取更新后的DOM(dom的改变是发生在nextTick()之后),这个方法作用是当数据被修改后使用这个方法,会回调获取更新后的dom再render出来

  Vue.nextTick()作用:在下次dom更新循环结束之后,执行延迟回调。在修改数据之后立即使用这个方法,获得更新后的dom

 

在以下两个情况下需要用到Vue.nextTick()

1、Vue声明周期的created() 钩子函数进行的DOM操作一定要放在Vue.nextTick() 的回调函数中,因为created() 执行的时候DOM实际上并未进行任何渲染,此时进行DOM操作无异于徒劳,所以此处一定要将DOM操作的js代码放进Vue.nextTick()的回调函数中。

  与之对应的就是mounted 钩子函数,因为该函数执行时所有的DOM挂载和渲染都已完成,此时再钩子函数中进行任何DOM操作都不会有问题。

2、在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的DOM结构的时候,这个操作应该放进Vue.nextTick() 的回调函数中

 

简而言之,如果你在数据改变之后的操作跟改变之后的DOM有关,那么就应该使用Vue.nextTick()

 

 

 

 

 

主要是用于DOM的异步更新
定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数,

 

 

 

 用简单的话来叙述: 生命周期中created(创建后) 是不会进行dom渲染的  如果想拿到数据 或者是实时更新这个数据的话  使用nextTick()

 

posted on 2020-02-14 20:47  byd张小伟  阅读(109)  评论(0编辑  收藏  举报