Skip to content

指令

v-if, v-show

指令目的手段编译条件性能消耗使用场景
v-if动态的渲染dom动态更改dom惰性的条件为真的时候才编译切换消耗很高不经常改变
v-for动态的渲染domdisplay控制任何条件下都被编译初始渲染消耗高适合频繁切换

v-for

nextTick

作用

vue 更新 DOM 是异步更新的,数据变化,DOM 的更新不会马上完成,nextTick 的回调是在下次 DOM 更新循环结束之后执行的延迟回调。

原理

nextTick 主要使用了宏任务和微任务。根据执行环境分别尝试采用

  • Promise:可以将函数延迟到当前函数调用栈最末端
  • MutationObserver :是 H5 新加的一个功能,其功能是监听 DOM 节点的变动,在所有 DOM 变动完成后,执行回调函数
  • setImmediate:用于中断长时间运行的操作,并在浏览器完成其他操作(如事件和显示更新)后立即运行回调函数
  • 如果以上都不行则采用 setTimeout 把函数延迟到 DOM 更新之后再使用,原因是宏任务消耗大于微任务,优先使用微任务,最后使用消耗最大的宏任务。