因为在 vue 中,对 data 中属性变化的监听是通过 Object.defineProperty
来完成的,所以 vue 要求 data 中的数据必须是 plain object。因此在 vue 中推荐的用法是使用 toJSON()
得到 plain object 之后设置为 data。
小程序中对数据的更新是通过 setData 方法主动通知的,所以没有 plain object 的限制,而在小程序中由于 js 与 wxml 是在两个不同的 runtime 中运行的,所以小程序会自动的将 data 中的 AV.Object toJSON 之后交给模板层渲染,所以其实也算是需要 toJSON 的,只是内部做了。
值得一提的是,在 Angular 中,数据的更新是靠脏值检查,所以在 Angular 中是真正可以在模板中直接「消费」AV.Object 的。