延續上一篇介紹 Template 常用寫法,這篇將說明如何顯示多筆資料。
v-for
即一般常見的 for 迴圈,用來處理 陣列
不過小菜一碟。
<ul id="repeatArray">
<li v-for="item in items">
{{ item.message }}
</li>
</ul>
var repeatArray = new Vue({
el: '#repeatArray',
data: {
items: [
{ message: 'Foo' },
{ message: 'Bar' }
]
}
});
- Foo
- Bar
印出 JSON 所有鍵值也沒問題
<ul id="repeat-object" class="demo">
<li v-for="value in userInfo">
{{ value }}
</li>
<li v-for="(value, key) in userInfo">
{{ key }} : {{ value }}
</li>
</ul>
new Vue({
el: '#repeatObject',
data: {
userInfo: {
FirstName: 'John',
LastName: 'Doe',
Age: 30
}
}
});
有時你會需要印出索引值
<li v-for="(item, index) in items">
{{ index }} : {{ item.message }}
</li>
<li v-for="(value, key, index) in userInfo">
{{ index }} - {{ key }} : {{ value }}
</li>
或拿來計數、在清單印出 n 個產品區塊,但連複製貼上都懶
<!-- 葉師父要買十個 -->
<div v-for="n in 10">
<img src="product-image-{{ n }}">
</div>
你就真的打了十個了,但鐵人賽要記得寫好寫滿30天
<div v-for="day in 30">
<ironman-post :day="day"></ironman-post>
</div>
Filter 本來想寫在同一篇,細想 2.0 後的性質已有區別,明後天寫 computed 再介紹
感謝分享
補充 new Vue() 是 Vue 2 語法,
Vue 3 用 Vue.createApp() 取代 new Vue()
https://book.vue.tw/appendix/migration.html#%E5%85%83%E4%BB%B6%E5%AF%A6%E9%AB%94%E5%BB%BA%E7%AB%8B
Vue 2 support will end on Dec 31, 2023. Learn more about Vue 2 Extended LTS.
The Benefits of the New Vue 3 App Initialization Code