vuejs计算的属性-更新何时触发?

时间:2019-07-27 01:31:37

标签: vue.js

看来,仅当vuejs计算的属性实际绑定在模板或视图中时,才会触发该属性的更新。它是否正确?

我问的原因是因为我试图将计算对象用作传递给组件的prop的监视程序,但实际上我并不希望显示任何计算对象。我只想让计算对象在prop更改时更新另一个数据项。如果计算出的值需要绑定才能真正起作用,那么我认为在这种情况下最好使用手表。

1 个答案:

答案 0 :(得分:1)

计算属性的计算是惰性的,因此只有在尝试读取该属性的值时,才会调用您提供的函数。

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

您可以仅通过读取其值来强制计算属性的计算。为其添加一个watch,还可以确保在值更改后,它始终会根据观察者的需要进行评估。

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

相关问题