iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 7
1
Modern Web

Vue.js 30天系列 第 7

Vue.js 07 - 樣板(template) 常用功能 - 列表

延續上一篇介紹 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 再介紹


上一篇
Vue.js 06 - 樣板(template) 常用功能
下一篇
Vue.js 08 - 過濾器(Filter)
系列文
Vue.js 30天30

尚未有邦友留言

立即登入留言