【发布时间】:2019-11-06 07:12:48
【问题描述】:
在阅读文档中的"Reactivity in Depth" 时,我看到两点我不确定如何解释:
当您将纯 JavaScript 对象作为其数据传递给 Vue 实例时 选项,Vue 将遍历其所有属性并转换它们 使用
Object.defineProperty获取/设置者
(...)
由于现代 JavaScript 的局限性(以及放弃
Object.observe),Vue 无法检测到属性添加或 删除。由于Vue执行getter/setter转换过程 在实例初始化期间,数据中必须存在属性 对象,以便 Vue 对其进行转换并使其具有反应性。
这与嵌套对象有什么关系,例如
[
{
"a": 1,
"b": [
{
"c": 1
},
...
]
},
{
"a": 10,
"b": [
{
"c": 10
},
...
]
},
...
]
具体来说,应该如何将这样的对象呈现给data(),使其具有反应性?
data() {
return {
likeThis: [],
orLikeThat: [{}],
orMoreDetailed: [{a: null, b:[]}],
orTheFullStucture: [{a: null, b:[{c: null}]}]
}
}
【问题讨论】:
标签: javascript vue.js reactive-programming