目录
有时要以列表的方式,显示数据,使用循环命令是最好不过的了。vue也提供了v-for循环命令。
一、v-for指令用法
可以看Vue的v-for指令
- 预期:
Array | Object | number | string | Iterable (2.6
新增
)
- 用法:
基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法 alias in expression
,为当前遍历的元素提供别名:
<div v-for="item in items">
{{ item.text }}
</div>
另外也可以为数组索引指定别名 (或者用于对象的键):
<div v-for="(item, index) in items"></div>
<div v-for="(val, key) in object"></div>
<div v-for="(val, name, index) in object"></div>
v-for
的默认行为会尝试原地修改元素而不是移动它们。要强制其重新排序元素,你需要用特殊 attribute key
来提供一个排序提示:
<div v-for="item in items" :key="item.id">
{{ item.text }}
</div>
从 2.6 起,v-for
也可以在实现了可迭代协议的值上使用,包括原生的 Map
和 Set
。不过应该注意的是 Vue 2.x 目前并不支持可响应的 Map
和 Set
值,所以无法自动探测变更。
当和 v-if
一起使用时,v-for
的优先级比 v-if
更高。详见列表渲染教程
v-for
的详细用法可以通过以下链接查看教程详细说明。
二、例子 列出水果
主要HTML代码如下:引入vue.js文件这里不写了
<body>
<div id="root">
<ul>
<li v-for="item in fruit" style="list-style: none">{{item}}</li>
</ul>
</div>
<script>
new Vue({
el: "#root",
data: {
fruit: ["葡萄","橘子","苹果","柚子","桔子"]
},
methods: {
t1: function (){
this.show= !this.show
}
}
})
</script>
</body>
三、注意事项
当我们使用v-for的时候,我们使用key属性会提升渲染效率。如果不用频繁排序可以用index,如果是则会有问题的
<ul>
<li v-for="(item,index) in fruit" style="list-style: none" v-bind:key="index">{{item}}</li>
</ul>