dom更新:在vue中,你修改了data的某一个值,并不会立即反应到该ele中。vue将你对data的更 改放到watcher的一个对列中(异步),只有在当前任务空闲时才会去执行watcher队列任务。这就有一个延迟时间了。
当执行到
n
e
x
t
T
i
c
k
的
时
候
,
这
是
一
个
异
步
事
件
,
他
也
会
把
这
个
事
件
放
到
一
个
队
列
当
中
,
异
步
事
件
是
不
会
立
即
执
行
的
代
码
,
会
被
j
s
处
理
器
放
到
一
个
队
列
里
,
按
照
队
列
的
顺
序
优
先
级
等
一
个
个
按
次
序
执
行
,
新
添
加
的
事
件
都
会
放
在
队
列
末
尾
。
所
以
,
当
第
一
个
也
就
是
d
a
t
a
的
修
改
执
行
渲
染
在
页
面
之
后
,
这
个
时
候
执
行
nextTick的时候,这是一个异步事件,他也会把这个事件放到一个队列当中,异步事件是 不会立即执行的代码,会被js处理器放到一个队列里,按照队列的顺序优先级等一个个按次序执行, 新添加的事件都会放在队列末尾。所以,当第一个也就是data的修改执行渲染在页面之后,这个时候执行
nextTick的时候,这是一个异步事件,他也会把这个事件放到一个队列当中,异步事件是不会立即执行的代码,会被js处理器放到一个队列里,按照队列的顺序优先级等一个个按次序执行,新添加的事件都会放在队列末尾。所以,当第一个也就是data的修改执行渲染在页面之后,这个时候执行nextTick,就肯定能获取dom的东西la。
同理也是,创建一个setTimeout,他也会放到队列中,当上一个事件执行完之后,才会这个他这个事件,才会执行他里面的回调,也就能成功获取啦。
this.$nextTick()理解
最新推荐文章于 2023-12-16 10:00:00 发布