Vue中如何设计实现合理的响应式触发机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1315个文字,预计阅读时间需要6分钟。
实现对象响应的基本方法包括读取属性、修改值、删除属性。尽管这种实现较为简单,但已实现了基本功能。然而,存在许多边缘条件我们尚未考虑。
正文
前文中讲完了如何实现对Object的响应,包含了读取属性,修改值,删除属性.但这里缺少很多优化,我们只能说是简单的实现了功能,但是有很多边际条件我们并没有考虑到。
现在跟着作者,看看我们还需要考虑什么。
- 当值没有发生变化时 比如这样
const p = reactive({a:1}) effect(()=>{ console.log(p.a) }) p.a=1
p.a的初始值就是1,然后你再次赋值为1,理论上我们就不需要再执行副作用了,但是显然在以前的代码还是会执行的。
我们考虑到了相同的值,这时候应该不触发响应。
本文共计1315个文字,预计阅读时间需要6分钟。
实现对象响应的基本方法包括读取属性、修改值、删除属性。尽管这种实现较为简单,但已实现了基本功能。然而,存在许多边缘条件我们尚未考虑。
正文
前文中讲完了如何实现对Object的响应,包含了读取属性,修改值,删除属性.但这里缺少很多优化,我们只能说是简单的实现了功能,但是有很多边际条件我们并没有考虑到。
现在跟着作者,看看我们还需要考虑什么。
- 当值没有发生变化时 比如这样
const p = reactive({a:1}) effect(()=>{ console.log(p.a) }) p.a=1
p.a的初始值就是1,然后你再次赋值为1,理论上我们就不需要再执行副作用了,但是显然在以前的代码还是会执行的。
我们考虑到了相同的值,这时候应该不触发响应。

