Vue乾貨第一集:v-for 迴圈v-for 指令需要以 site in sites 形式的特殊語法, sites 是源資料陣列並且 site 是陣列元素迭代的別名。v-for 可以繫結資料到陣列來渲染一個列表:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>迴圈</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <style> </style> <script src="vue.js"></script> <script> window.onload=function(){ new Vue({ el:'#box', data:{ arr:['apple','banana','orange','pear'], json:{a:'apple',b:'banana',c:'orange'} } }); }; </script></head><body> <div id="box"> <ul> <li v-for="value in arr"> {{value}} </li> </ul> </div></body></html>
模板中使用 v-for:<template v-for="site in sites"> <li>{{ site.name }}</li> <li>--------------</li> </template>
v-for 可以通過一個物件的屬性來迭代資料:
v-for 也可以迴圈整數
<li v-for="n in 10"> {{ n }} </li>
computed 計算屬性
<div id="app"> <p>原始字串: {{ message }}</p> <p>計算後反轉字串: {{ reversedMessage }}</p></div> <script>var vm = new Vue({ el: '#app', data: { message: 'Runoob!' }, computed: { // 計算屬性的 getter reversedMessage: function () { // `this` 指向 vm 例項 return this.message.split('').reverse().join('') } }})</script>
例項中聲明了一個計算屬性 reversedMessage 。提供的函式將用作屬性 vm.reversedMessage 的 getter 。vm.reversedMessage 依賴於 vm.message,在 vm.message 發生改變時,vm.reversedMessage 也會更新。
事件處理器事件監聽可以用v-on指令: <button v-on:click="counter += 1">增加 1</button>
我們需要使用一個方法來呼叫 JavaScript 方法,v-on 可以接收一個定義的方法來呼叫
<button v-on:click="greet">Greet</button> methods: { greet: function (event) { // `this` 在方法裡指當前 Vue 例項 alert('Hello ' + this.name + '!') // `event` 是原生 DOM 事件 if (event) { alert(event.target.tagName) } } }
除了直接繫結到一個方法,也可以用內聯 JavaScript 語句:
<button v-on:click="say('hi')">Say hi</button> methods: { say: function (message) { alert(message) } }
最新評論