VUE(一)——nextTick

DOM更新循环结束后执行延迟回调,在数据修改以后立即使用该方法可获取更新后的DOM。

(*问题1)DOM更新循环?

VUE中使用异步执行DOM更新,在修改数据之后视图不会立即更新,而是等同一事件循环中的所有数据变化完成之后再统一进行视图更新。想要立即使用更新后的DOM,要调用nextTick方法,这样在DON更新后nextTick里的内容会立即执行。

事件循环:同步代码执行------》查找异步队列,推入执行栈,执行Vue.nextTick[事件循环1]------》查找异步队列,推入执行栈,执行Vue.nextTick[事件循环2]......

同步执行,异步更新,这也是DOM不会立即更新的原因。

(*问题2)下一次循环更新?

(*问题3)为什么在修改数据之后使用?

(*问题4)应用场景?

1、需要在视图更新之后,基于新的视图进行操作。

(*注)在created和mounted阶段,如果需要操作渲染后的视图,也要使用nextTick方法。mounted不会承诺所有的子组件一起被挂载,如果要等到整个视图都渲染完毕就可以用nextTick替换掉mounted。

2、点击按钮显示原本已v-show = false隐藏的输入框来获取焦点。

3、点击获取元素宽度。

相关推荐
咸虾米几秒前
在uniCloud云对象中定义dbJQL的便捷方法
前端·javascript
梨子同志2 分钟前
JavaScript Proxy 和 Reflect
前端·javascript
海的诗篇_4 分钟前
移除元素-JavaScript【算法学习day.04】
javascript·学习·算法
汤圆炒橘子5 分钟前
状态策略模式的优势分析
前端
__Yx__7 分钟前
JavaScript核心概念输出——原型链
javascript
90后的晨仔22 分钟前
解析鸿蒙 ArkTS 中的 Union 类型与 TypeAliases类型
前端·harmonyos
IT_陈寒38 分钟前
Element Plus 2.10.0 重磅发布!新增Splitter组件
前端·人工智能·后端
挑战者66688839 分钟前
vue入门环境搭建及demo运行
前端·javascript·vue.js
贩卖纯净水.39 分钟前
Webpack的基本使用 - babel
前端·webpack·node.js
用户882093216671 小时前
Vue组件通信全攻略:从父子传参到全局状态管理,一篇搞定!
前端