在魔法模式下通知 RactiveJS 新的对象属性

Informing RactiveJS about new object properties in magic mode

我是 Ractive.js 的新手,正在使用 "magic mode",因此对我的 JS 对象的更新会自动触发对我的 UI 的更新。一切都很好,除了我有一些属性被添加到我的绑定对象 我的 Ractive 实例被渲染之后。这意味着 Ractive 看不到这些属性的更改,因此 "magic" 对它们不起作用。

作为一种解决方法,我发现我可以在将它们传递给 Ractive 之前用 'empty' 值初始化这些属性,但感觉有点不自然。

是否有更好的方式来通知 Ractive 我已经添加了一个新的 属性 到它应该开始跟踪的对象?

我的经验是,您可以通过两种方式进行判断。

第一个是您在 post 中描述的那个。 第二种是通过您用来呈现对象的模板 "add" 属性。

当你将魔法模式设置为 true 时,ractive 实际做的是 "wrapping/replacing" 你的字段和 属性 监控字段的变化。

当我在我的数据对象上使用 Object.DefineProperty 时,我在使用 magicmode 时遇到了一些问题。 (东西被调用了两次)

我会选择解决方案 1,并提前定义所有字段。 还要注意将您的字段(现在实际上是 属性 替换为 ractive)设置为不是值类型的内容,因为这将再次覆盖 属性 并弄乱魔术模式。