Vue如何监控Object属性的变化?
发布于 3 年前 作者 clubadmin 1346 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

最近在开发途中碰到一个场景,让我发现无论是computed,还是watch都失效了,与Object属性的变化相关。

首先分析一下Object可能存在的变化,我认为大致分为两种:
1.属性对应的value变化。 {a:‘a’} -> {a:‘b’}
2.属性的增删 {a:‘a’} -> {a:‘a’,b:‘b’}

对于第一种情况,解决方案是deep,网上有不少文章介绍,重点在于第二种的解决方案。最近的业务场景中我碰到一个需要会频繁增删属性的场景。当然项目已经结束了,功能也已经实现。因为属性的变化是由事件驱动的,最简单的方法就是在事件发生时插入一下函数做处理。

但是现在我在重构代码,目的不是实现功能,而是在想有没有更”优雅“的方式来达到目的。
(另一个主要原因是该对象会传入到多个component中,如果使用函数需要在多处维护处理代码,我觉得这样代码结构会很不好。)

求教求教。

回到顶部