使用 v-for 指令基于一个数组渲染一个列表数组
<ul id="demo"><li v-for="item in items">{{ item.message }}</li></ul> ---------------------------------------------------- var demo = new Vue({ el: '#demo', data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } });
从1.0.17开始可使用of分隔符,更接近JavaScript遍历器语法:ide
<div v-for="item of items"></div>
相似于 template v-if,也能够将 v-for 用在 <template> 标签上,以渲染一个包含多个元素的块。ui
<ul> <template v-for="item in items"> <li>{{ item.msg }}</li> <li class="divider"></li> </template> </ul>
不会修改原始数组而是返回一个新数组的非变异方法,直接用新数组替换旧数组:code
demo.items = example1.items.filter(function (item) { return item.message.match(/Foo/); })
注: filter()/concat()/slice()对象
用全新对象替换数组,使用track-by特性给Vue.js提示,以尽量地复用已有实例。排序
{items: [ { _uid: ‘88f869d’, ... }, { _uid: ‘7496c10’, ... } ]} <div v-for="item in items" track-by="_uid"> <!-- content --> </div>
想要显示过滤/排序过的数组,同时不实际修改或重置原始数据。有两个办法:
1.建立一个计算属性,返回过滤/排序过的数组;
2.使用内置的过滤器 filterBy 和 orderBy。索引
计算属性有更好的控制力,也更灵活,由于它是全功能 JavaScript。可是一般过滤器更方便。事件