vuejs 计算属性 - 何时触发更新?
Posted
技术标签:
【中文标题】vuejs 计算属性 - 何时触发更新?【英文标题】:vuejs computed properties - when update triggered? 【发布时间】:2019-12-05 07:07:56 【问题描述】:看起来,一个 vuejs 计算属性只有在实际绑定在模板或视图中时才会触发更新。它是否正确?
我问的原因是因为我正在尝试使用计算作为观察者来观察传递给我的组件的道具,但我实际上并不想显示计算中的任何内容。我只想让计算在道具更改时更新另一个数据项。如果计算需要绑定才能实际工作,我认为在这种情况下我最好使用手表。
【问题讨论】:
【参考方案1】:计算属性是惰性计算的,因此在尝试读取属性值之前不会调用您提供的函数。
如果依赖关系发生变化,则该值被标记为脏,但不会立即重新计算。同样,只有在访问该值时才会发生这种情况。
您可以通过读取其值来强制计算计算属性。为其添加watch
也将确保始终对其进行评估,因为观察者需要在值更改时立即知道。
在您描述的场景中,使用watch
代替计算属性可能是更好的方法,但滥用计算属性来获得自动依赖跟踪可能非常方便。看起来这将在 Vue 3 中更直接地公开,因此不需要这样的变通方法。
【讨论】:
以上是关于vuejs 计算属性 - 何时触发更新?的主要内容,如果未能解决你的问题,请参考以下文章