Skip to content

Commit f954d89

Browse files
authored
Merge pull request #142 from veaba/2.0-cn
更新响应式文件标题错误和部分错误翻译
2 parents d4adf0b + c0e053f commit f954d89

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/guide/reactivity.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,19 @@ order: 15
1818

1919
## 变化检测问题
2020

21-
受 ES5 的限制,Vue.js **不能检测到对象属性的添加或删除**。因为 Vue.js 在初始化实例时将属性转为 `getter/setter`,所以属性必须在 `data` 对象上才能让 Vue.js 转换它,才能让它是响应的。例如:
21+
22+
由于现代 JavaScript (放弃了 `Object.observe` ) 的局限性,Vue **不能检测到的属性添加或删除**。因为 Vue 在实例初始化期间执行的 getter/setter 转换过程,属性必须存在于此 `data` 对象中,以便 Vue 转换它,使其响应式。例如︰
2223

2324
``` js
2425
var vm = new Vue({
2526
data:{
2627
a:1
2728
}
2829
})
29-
//`vm.a`是响应
30+
//`vm.a`是响应式
3031

3132
vm.b = 2
32-
// `vm.b` 是非响应
33+
// `vm.b` 是非响应式
3334
```
3435

3536
Vue 不允许动态地将新的顶级响应属性添加到已经创建的实例。然而,它是可能将响应属性添加到嵌套的对象,可以使用 `Vue.$set(key, value)` 实例方法:
@@ -52,9 +53,8 @@ this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })
5253

5354
也有一些数组相关的问题,之前已经在[列表渲染](/guide/list.html#Caveats)中讲过。
5455

55-
## 初始化数据
56-
57-
由于 Vue 不允许动态添加顶级响应属性,这意味着你必须初始化声明的所有顶级响应前期数据属性,哪怕是有空值的实例:
56+
## 声明响应式属性
57+
由于 Vue 不允许动态添加根数据属性,所以你必须在初始化实例前声明根数据属性,哪怕只是一个空值:
5858
``` js
5959
var vm = new Vue({
6060
data: {
@@ -67,7 +67,7 @@ var vm = new Vue({
6767
vm.message = 'Hello!'
6868
```
6969

70-
如果你不声明中数据选项的消息,Vue 将警告你的渲染功能试图访问一个不存在的属性。
70+
如果你不声明中数据选项的`消息`,Vue 将警告你的渲染功能试图访问一个不存在的属性。
7171

7272
这种限制背后是有技术的原因,它消除了边缘情况下依赖项跟踪系统中一类,也使得 Vue 实例和类型检查系统发挥。但也是一个重要的考虑,在代码可维护性方面:数据对象就像组件状态的模式(Schema),在它上面声明所有的属性让组织代码更易于其他开发者阅读理解。
7373

0 commit comments

Comments
 (0)