使用 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。可是一般過濾器更方便。事件