1 事件循环
Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新。
1.1 Vue 异步执行 DOM 更新的机制:
(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个"任务队列"(task queue)。只要有了异步任务,就在"任务队列"之中放置一个事件。“任务队列"是一个先进先出的数据结构,排在前面的事件,优先被主线程读取。
(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。
2 Vue.nextTick()
代码示例:
//改变数据
vm.message = 'changed'
//想要立即使用