原文链接

前言

心情很忐忑,当我写下这个标题。想起年初时在杭州求职,电面了一家武汉的公司,面试官就抛了这样一个问题。那时候还懵懵懂懂,就知道如何使用,并没有太清楚两者的区别。

开始

有时候写这些东西,真的怕误导了一些人,以下描述的异同,只是我个人的观点。如果有什么不当之处,还望各位博友指出~感谢

最近研究vue.js数据双向绑定的原理,看了一些很好的文章,自己也跟着敲了几遍代码。又开始思考computed和watch两者的异同。

实践

随着学习的深入,也接触到一些前辈,可以真真切切感受到自己于他们的差距。坚持...坚持...努力,希望自己有一天也能给别人一些指引和方向~

先上一张图,原文已经被删了,这是我从百度快照截取的:

百度快照

这是一方面,总结一下:当我们某一个值依赖于多个值时,建议使用computed,其中任何一个值变化时,该值都能及时更新;当我们一个值被多个值依赖时,建议使用watch,当这个值变化时,所有依赖它的值都会及时更新。 (可能有些绕,但是要理解清楚,图片更清晰)

既然这只是一方面,那么另一方面是什么呢?

让我们回到官方的文档,万变不离其宗。我们最初学习是看文档,遇到问题时,最好的还是回来看看文档。

官方文档

注意,这段描述有两个点, 方法+数据变化 

通常我们都是在computed和watch中,根据依赖的值得变化,直接修改其他的值(比如更新data中的数据)。但是如果我们要在一个值变化时做一些其他的操作,应该怎么办呢?

第2点区别

是的。这才是他们最根本的区别,现在看看文档已经描述得如此的简单明了。 当依赖的值变化时,在watch中,是可以做一些复杂的操作的,而computed中的依赖,仅仅是一个值依赖于另一个值,是值上的依赖。

总结

有时候我们忙于业务,很难停下来看看它的原理。但是现在我却很享受这种探索的过程,一步一步翻越高山~翻过去,高山便不再是高山,远方依然是远方。

嘘寒问暖 不如打笔巨款~

Logo

前往低代码交流专区

更多推荐