[英]VueJS: Reactive array of objects
这可能听起来微不足道,但事实并非如此。 所以总结一下:
this.foo
)。 问题:生成的对象不是反应性的,并且不会对this.foo
更改做出反应。
演示: https : //codesandbox.io/s/vigilant-framework-47me6?fontsize=14&hidenavigation=1&theme=dark
到目前为止我尝试过的:
Vue(...)
使对象具有反应性( https://github.com/vuejs/vue/issues/2660 )。$set
在结构方法中设置其他属性。所以问题是:我们如何使对象具有反应性?
PS 我知道使用观察者/计算是选项,但不是在这种情况下。 我希望对象是被动的,而不是手动更新整个对象数组。
好吧,问题是当你这样做时
{ foo: this.foo }
您只是将存储在this.foo 中的实际值传递给新对象 foo 属性,该属性在实例化时为 0,这就是 javascript 处理原始值的方式。
如果您不想使用计算属性或观察者,您可以使用对象而不是通过引用而不是通过值分配的原始值。
所以你可以像这样在数据对象中定义你的 foo 属性:
foo: {val: 0}
像这样在 addedProps 中分配您的值
{foo: this.foo}
并像这样增加价值
setInterval(() => this.foo.val++, 250);
这是使用上述https://codesandbox.io/s/vue-reactive-object-ybji5修改的代码
谢谢,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.