6
6
7
7
## ` v-for `
8
8
9
- 我们用` v-for ` 指令根据一组数组的选项列表进行渲染。` v-for ` 指令需要以 ` item in items ` 形式的特殊语法,` items ` 是源数据数组并且 ` item ` 是数组元素迭代的别名。
9
+ 我们用 ` v-for ` 指令根据一组数组的选项列表进行渲染。 ` v-for ` 指令需要以 ` item in items ` 形式的特殊语法, ` items ` 是源数据数组并且 ` item ` 是数组元素迭代的别名。
10
10
11
11
### 基本用法
12
12
@@ -56,7 +56,7 @@ var example1 = new Vue({
56
56
</script >
57
57
{% endraw %}
58
58
59
- 在 ` v-for ` 块内部,我们有完全访问父作用域的属性。` v-for ` 还支持一个可选的第二个参数为当前项的索引。
59
+ 在 ` v-for ` 块内部,我们有完全访问父作用域的属性。 ` v-for ` 还支持一个可选的第二个参数为当前项的索引。
60
60
61
61
``` html
62
62
<ul id =" example-2" >
@@ -106,7 +106,7 @@ var example2 = new Vue({
106
106
</script >
107
107
{% endraw %}
108
108
109
- 你也可以用 ` of ` 替代 ` in ` 作为分隔符, 所以它是最接近JavaScript迭代器的语法 :
109
+ 你也可以用 ` of ` 替代 ` in ` 作为分隔符, 所以它是最接近 JavaScript 迭代器的语法 :
110
110
111
111
``` html
112
112
<div v-for =" item of items" ></div >
@@ -188,7 +188,7 @@ new Vue({
188
188
</div >
189
189
```
190
190
191
- <p class =" tip " >当遍历一个对象时,顺序是根据 `Object.keys()` 可枚举键名排列,不保证和JavaScript引擎实现是一致的 。</p >
191
+ <p class =" tip " >当遍历一个对象时,顺序是根据 `Object.keys()` 可枚举键名排列,不保证和 JavaScript 引擎实现是一致的 。</p >
192
192
193
193
### 整数迭代 v-for
194
194
@@ -331,27 +331,27 @@ new Vue({
331
331
332
332
## key
333
333
334
- 当Vue.js用 ` v-for ` 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,而不是移动DOM元素来匹配列表的顺序,Vue将简单复用此处每个元素 ,并且确保它在特定索引下显示已被渲染过的每个元素。这个类似Vue 1.X的 ` track-by="$index" ` 。
334
+ 当 Vue.js 用 ` v-for ` 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,而不是移动 DOM 元素来匹配列表的顺序, Vue 将简单复用此处每个元素 ,并且确保它在特定索引下显示已被渲染过的每个元素。这个类似 Vue 1.X 的 ` track-by="$index" ` 。
335
335
336
- 这个默认的模式是有效的,但是只适合你的列表渲染输出时不依赖子组件状态或临时DOM状态 (例如:表单输入框的值)。
336
+ 这个默认的模式是有效的,但是只适合你的列表渲染输出时不依赖子组件状态或临时 DOM 状态 (例如:表单输入框的值)。
337
337
338
- 给Vue一个提示以便它能跟踪每个节点身份 ,并且因此重新使用和重新排序现有元素,你需要为每项提供一个唯一 ` key ` 属性。一个有效的 ` key ` 值是每项唯一ID. 这个特殊的属性相当于Vue 1.x的 ` track-by ` ,但它像一个变量,所以你需要用 ` v-bind ` 来绑定动态值(简洁写法如下):
338
+ 给 Vue 一个提示以便它能跟踪每个节点身份 ,并且因此重新使用和重新排序现有元素,你需要为每项提供一个唯一 ` key ` 属性。一个有效的 ` key ` 值是每项唯一 ID. 这个特殊的属性相当于 Vue 1.x 的 ` track-by ` ,但它像一个变量,所以你需要用 ` v-bind ` 来绑定动态值(简洁写法如下):
339
339
340
340
``` html
341
341
<div v-for =" item in items" :key =" item.id" >
342
342
<!-- 内容 -->
343
343
</div >
344
344
```
345
345
346
- 它建议尽可能用 ` v-for ` 时提供一个 ` key ` ,除非迭代DOM内容很简单 ,或者你有意要依赖于对性能提升的默认行为。
346
+ 它建议尽可能用 ` v-for ` 时提供一个 ` key ` ,除非迭代 DOM 内容很简单 ,或者你有意要依赖于对性能提升的默认行为。
347
347
348
- 因为它是Vue识别节点的通用的机制, ` key ` 还具有并不特别依赖于 ` v-for ` 的其他用途,我们将在后面的指南中看到其他用途。
348
+ 因为它是 Vue 识别节点的通用的机制, ` key ` 还具有并不特别依赖于 ` v-for ` 的其他用途,我们将在后面的指南中看到其他用途。
349
349
350
350
## 数组更新检测
351
351
352
352
### 突变方法
353
353
354
- Vue包含一组观察数组的突变方法 ,所以它们也将会触发视图更新。这些方法如下:
354
+ Vue 包含一组观察数组的突变方法 ,所以它们也将会触发视图更新。这些方法如下:
355
355
356
356
- ` push() `
357
357
- ` pop() `
@@ -365,19 +365,19 @@ Vue包含一组观察数组的突变方法,所以它们也将会触发视图
365
365
366
366
### 重塑数组
367
367
368
- 突变方法,顾名思义,改变原始数组的称呼。相比之下,也有不改变原组数的方法,例如:` filter() ` ,` concat() ` ,` slice() ` 。这些不会改变原始数组,但总是返回一个新的数组。当用不改变原数组的方法时,你只需替换旧数组用新的:
368
+ 突变方法,顾名思义,改变原始数组的称呼。相比之下,也有不改变原组数的方法,例如: ` filter() ` , ` concat() ` , ` slice() ` 。这些不会改变原始数组,但总是返回一个新的数组。当用不改变原数组的方法时,你只需替换旧数组用新的:
369
369
370
370
``` js
371
371
example1 .items = example1 .items .filter (function (item ) {
372
372
return item .message .match (/ Foo/ )
373
373
})
374
374
```
375
375
376
- 你可你能认为这将导致Vue丢掉现有DOM和重新渲染整个列表 。幸运的是,事实并非如此。Vue实现了一些智能化去最大化的重用DOM元素 ,所以用另外含有重叠对象的数组替换数组是非常高效的操作。
376
+ 你可你能认为这将导致 Vue 丢掉现有 DOM 和重新渲染整个列表 。幸运的是,事实并非如此。 Vue 实现了一些智能化去最大化的重用 DOM 元素 ,所以用另外含有重叠对象的数组替换数组是非常高效的操作。
377
377
378
378
### 注意事项
379
379
380
- 由于JavaScript的限制,Vue不能检测以下变动的数组 :
380
+ 由于 JavaScript 的限制, Vue 不能检测以下变动的数组 :
381
381
382
382
1 . 当你直接设置一个项的索引时, 例如: ` vm.items[indexOfItem] = newValue `
383
383
2 . 当你修改数组的长度时, 例如: ` vm.items.length = newLength `
0 commit comments