v-for 指令
v-for 遍历数组
value in arr
遍历数组中的元素
(value, index) in arr 遍历数组中的元素和数组下标
1 | <body> |
v-for 遍历 json 对象
value in json
遍历 json 对象中的值
(value, key) in json 遍历 json 对象中的值和键
(value, key, index) in json 遍历 json 对象中的值、键和索引
1 | <body> |
key 值的作用
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用“就地复用”策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。key 的作用主要是为了高效的更新虚拟 DOM
v-if 与 v-for 的优先级
- v-for 优先于 v-if 被解析
- 如果同时出现,每次渲染都会先执行循环再判断条件,无论如何循环都不可避免,浪费了性能
- 要避免出现这种情况,则在外层嵌套 template,在这一层进行 v-if 判断,然后在内部进行 v-for 循环
- 如果条件出现在循环内部,可通过计算属性提前过滤掉那些不需要显示的项
v-if 与 v-show 的区别
v-if
是真正的条件渲染,直到条件第一次变为真时,才会开始渲染。v-show
不管初始条件是什么会渲染,并且只是简单地基于 CSS 的 “display” 属性进行切换。
注意:v-if 适用于不需要频繁切换条件的场景;v-show 则适用于需要非常频繁切换条件的场景。