vue.js - vuejs 计算属性 - 何时触发更新?
问题描述
似乎只有在模板或视图中实际绑定了 vuejs 计算属性时才会触发更新。这个对吗?
我问的原因是因为我试图将计算用作传递给我的组件的道具的观察者,但我实际上并不想显示计算中的任何内容。我只想让计算在道具更改时更新另一个数据项。如果计算需要绑定才能实际工作,我认为在这种情况下我最好使用手表。
解决方案
计算的属性是懒惰地评估的,因此在尝试读取属性值之前不会调用您提供的函数。
如果依赖关系发生变化,则该值被标记为脏,但不会立即重新计算。同样,只有在访问该值时才会发生这种情况。
您可以通过读取其值来强制计算计算属性。为它添加一个watch
也将确保它总是被评估,因为观察者需要在值发生变化时立即知道。
在您描述的场景中,使用 awatch
而不是计算属性可能是一种更好的方法,但是滥用计算属性来获得自动依赖跟踪可能非常方便。看起来这将在 Vue 3 中更直接地公开,因此不需要这种变通方法。
推荐阅读
- list - F#:我需要将输出格式化为仅包含逗号分隔的整数,而不是 F# 中的列表格式
- image - 为什么 Android Studio 无法构建,图像上出现 AAPT2 错误?
- python-3.x - 使用 python 而不是 django shell
- c++ - 继承构造器
- python - 很想使用 selenium 从 webapge 获取数据并使用烧瓶显示它?
- c# - 如何使用 Linq 使用另一个列表的值对列表进行排序
- angular - 为什么将选项卡添加到 mat-tab-group 不能从单独的组件中工作?
- c++ - 在 C++ 的 fluent interface 中设置后立即调用析构函数
- javascript - 在 Node 的 GET 请求之后将数据传递给 MongoDB
- amazon-web-services - flutter_facebook_login 和 AWS:登录令牌无效。不是有效的 OpenId Connect 身份令牌