Vue遍历渲染
Vue 中要遍历 n 项可以这么写
1 | <div v-for="i in n">{{i}}</div> |
遍历数组
1 | <div v-for="(item, index)in array"> |
遍历对象,遍历顺序就是对象书写顺序
1 | <div v-for="(value, key, index) in object"> |
v-for 和 v-if
当它们处于同一节点,v-for
的优先级比v-if
更高,这意味着v-if
将分别重复运行于每个v-for
循环中。所以下面代码在arr.length > 2
的情况下会报错RangeError: Invalid array length
:
1 | <div v-if="arr.length < 2" |
这是因为负数不能遍历,即使有v-if
的限制也会报错!
可以修改为
1 | <div v-if="arr.length < 2" |
如果你的目的是有条件地跳过循环的执行,那么可以将v-if
置于外层元素 (或 <template>
)上。
v-for on a
类似于v-if
,你也可以利用带有v-for
的<template>
渲染多个元素。
1 | <ul> |
key
官方建议尽可能在使用v-for
时提供key
,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升。
1 | <div v-for="item in items" :key="item.id"></div> |