vue中 nextTick与watch的区别是什么?

题目如题,今天面试被问到的一个问题,找了半天度娘也没解决。有没有哪位知道的?

这样去说

nextTick:是一个回调函数,可以理解成 当响应式数据变更完成之后 -> 渲染完成dom之后,执行的一个回调函数(可以简单去理解一下 js的 eventLoop 事件循环机制,有一定的关联) 但是你在父组件使用的nextTick只相对于你当前的层级,你不能去控制一个异步渲染的子组件层级,他不一定会比你的异步渲染更晚执行,根据nextTick源码来看,一共是用了4种方式做了延迟操作(Promise、MutationObserver、setImmediate、setTimeout) 主要的就是用来做一个延迟操作的 用于抓取一个更新时机 最简单的 Promise、setTimeout 一个是微任务一个是宏任务,用于同异步机制实现一个延迟效果,另外两种就是dom更新钩子。

watch:有兴趣可以从b站看一下源码2.+版本用的就是Object.defineproperty()做的监听操作,而 watch 你可以简单的理解为这个监听函数的回调,我可以在这个 Object.defineproperty 监听的对象被监听的时候 做一些操作。

本质上来说两者差别还是很大的

这两者没有直接关联关系啊;放一起问也是狗的很;
应该是问computed和watch??
nexttick:在下次 DOM 更新循环结束之后执行延迟回调
watch:监听值得变化

个人感觉哈,两者没有什么关系,可能是我太菜了,或者是问你这个问题的人太奇怪了。nexttick和watch在Vue的官网中都有详细的说明,应该就没必要在这里解释一下两个都是什么了。
感觉有用的话请采纳一下,或者有什么想法大家可以交流一下

这俩 没什么相似的 。nextTick 可以立即获取到 改变的值,即使没渲染到页面也可以。

watch是监听 ,监听 某个值的变化 ,执行你写的函数

可以参考这里 第9题

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632