diff --git "a/\346\226\275\345\277\227\345\274\272/2021-6-2(\345\210\227\350\241\250\346\270\262\346\237\223).md" "b/\346\226\275\345\277\227\345\274\272/2021-6-2(\345\210\227\350\241\250\346\270\262\346\237\223).md"
new file mode 100644
index 0000000000000000000000000000000000000000..7df4cab4c0d5dbd7a3926fae4aaf7913fc61f0b7
--- /dev/null
+++ "b/\346\226\275\345\277\227\345\274\272/2021-6-2(\345\210\227\350\241\250\346\270\262\346\237\223).md"
@@ -0,0 +1,240 @@
+# 列表渲染
+# 一个数组对应一组元素
+1. 用 v-for 指令基于一个数组来渲染一个列表
+```
+
+
+
+```
+2. 在 v-for 块中,我们可以访问所有父级作用域的 property ,v-for 还支持第二个可选参数,也就是当前索引
+```
+
+
+ -
+ {{index}} - {{item.msg}}
+
+
+
+
+
+```
+ 你可以用 of 来代替 in 作为分隔符,它也更接近 JavaScript 迭代器的语法
+# 在 v-for 里使用对象
+1. 可以用 v-for 来遍历一个对象 property
+```
+
+
+
+```
+2. 你也可以提供第二个参数名称(也就是键名)
+```
+
+
+ -
+ {{value}} - {{item}}
+
+
+
+```
+3. 还可以用到第三个参数名称(也就是索引)
+```
+
+
+ -
+ {{base}} - {{value}} - {{item}}
+
+
+
+```
+ 在遍历对象时,会按 Object.keys() 的结果遍历,但是不能保证它的结果在不同的 JavaScript 引擎下都一致
+# 维护状态
+1. 为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key attribute
+```
+
+
+
+```
+建议尽可能在使用 v-for 时提供 key attribute,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升
+# 数组更新检测
+# 变更方法
+1. Vue 将被侦听的数组的变更方法进行了包裹,它们也将会触发视图更新
+```
+ push() //在数组的最后添加一个
+ pop() //删除数组的最后一个
+ shift() //在数组的第一个添加一个
+ unshift() //删除数组的第一个
+ splice() //
+ sort() //数组的第一和第二调换
+ reverse() //
+```
+# 替换数组
+1. 变更方法,顾名思义,会变更调用了这些方法的原始数组。相比之下,也有非变更方法,例如 filter()、concat() 和 slice()。它们不会变更原始数组,而总是返回一个新数组。当使用非变更方法时,可以用新数组替换旧数组
+```
+example1.items = example1.items.filter(function (item) {
+ return item.message.match(/Foo/)
+})
+```
+# 注意事项
+1. 由于 JavaScript 的限制,Vue 不能检测数组和对象的变化
+# 显示过滤/排序后的结果
+1. 有时,我们想要显示一个数组经过过滤或排序后的版本,而不实际变更或重置原始数据。在这种情况下,可以创建一个计算属性,来返回过滤或排序后的数组
+```
+{{ n }}
+data: {
+numbers: [ 1, 2, 3, 4, 5 ]
+},
+computed: {
+evenNumbers: function () {
+ return this.numbers.filter(function (number) {
+ return number % 2 === 0
+ })
+}
+}
+```
+在计算属性不适用的情况下 (例如,在嵌套 v-for 循环中) 你可以使用一个方法:
+```
+
+data: {
+ sets: [[ 1, 2, 3, 4, 5 ], [6, 7, 8, 9, 10]]
+},
+methods: {
+ even: function (numbers) {
+ return numbers.filter(function (number) {
+ return number % 2 === 0
+ })
+ }
+}
+```
+# 在 v-for 里使用值的范围
+1. v-for 也可以接受整数。在这种情况下,它会把模板重复对应次数
+```
+
+ {{ n }}
+
+```
+# 在 template 上使用 v-for
+1. 类似于 v-if,你也可以利用带有 v-for 的 template 来循环渲染一段包含多个元素的内容
+```
+
+```
+# v-if 与 v-for 一同使用
+1. 不推荐在同一元素里 v-if 和 v-for 一起使用,因为在同一节点,v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中,只想为部分项渲染节点时,这种优先级的机制会十分有用
+```
+
+ {{ todo }}
+
+```
+2. 如果你的目的是有条件地跳过循环的执行,那么可以将 v-if 置于外层元素 (或 template) 上
+```
+
+No todos left!
+```
+# 在组件上使用 v-for
+1. 2.2.0+ 的版本里,当在组件上使用 v-for 时,key 现在是必须的
+```
+
+
+```
\ No newline at end of file