Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代替

发布时间 2023-11-13 19:21:01作者: 龙陌

下列关于Vue的描述错误的是( )

A
当给某个组件修改某个值时,该组件不会立即重新渲染

B
Vue内部使用原生Promise.then、MutationObserver和setImmediate实现异步队列,不会采用setTimeout(fn, 0)

C
$nextTick()返回一个Promise对象

D
$nextTick()可以配合async/await使用

正确答案:B

官方解析:当环境不支持Promise.then、MutationObserver和setImmediate时,Vue使用setTimeout(fn, 0)代替。

dom树计算完成,然后渲染树在进行渲染
源码中异步渲染的实现首先会判断当前支持的异步方法,当当前编译环境不支持promise等异步方式的话,就会使用setTimeout去实现异步更新