首页 > 解决方案 > vuejs 计算属性 - 何时触发更新?

问题描述

似乎只有在模板或视图中实际绑定了 vuejs 计算属性时才会触发更新。这个对吗?

我问的原因是因为我试图将计算用作传递给我的组件的道具的观察者,但我实际上并不想显示计算中的任何内容。我只想让计算在道具更改时更新另一个数据项。如果计算需要绑定才能实际工作,我认为在这种情况下我最好使用手表。

标签: vue.js

解决方案


计算的属性是懒惰地评估的,因此在尝试读取属性值之前不会调用您提供的函数。

如果依赖关系发生变化,则该值被标记为脏,但不会立即重新计算。同样,只有在访问该值时才会发生这种情况。

您可以通过读取其值来强制计算计算属性。为它添加一个watch也将确保它总是被评估,因为观察者需要在值发生变化时立即知道。

在您描述的场景中,使用 awatch而不是计算属性可能是一种更好的方法,但是滥用计算属性来获得自动依赖跟踪可能非常方便。看起来这将在 Vue 3 中更直接地公开,因此不需要这种变通方法。


推荐阅读