一、v-for 的用法
循環指令,可以遍歷 Number、String、Object、Array;
- 循環數字、字符串:有2個參數,分別是value和索引值;
-
循環對象:有3個參數,分別是 屬性值、屬性名、索引值;
- 循環數組對象:有2個參數,分別是 對象和索引值;
-
索引值和屬性名可以省略不寫。
1 <h4>遍歷數字:</h4> 2 <div v-for="(value,idx) in forData1"> 3 <span>值{{value}} --- 索引值{{idx}}</span> 4 </div> 5 <h4>遍歷字符串:</h4> 6 <div v-for="(value,idx) in forData2"> 7 <span>值{{value}} --- 索引值{{idx}}</span> 8 </div> 9 <h4>遍歷對象:</h4> 10 <div v-for="(item,key,idx) in forData3"> 11 <span>屬性值{{item}} --- 屬性名{{key}} --- 索引值{{idx}}</span> 12 </div> 13 <h4>遍歷數組對象(嵌套循環):</h4> 14 <div v-for="(item,idx) in forData4" > 15 <span>對象{{item}} --- 索引值{{idx}}</span> 16 <div v-for="(i,key) in item"> 17 <span>{{i}}---{{key}}</span> 18 </div> 19 </div> 20 21 new Vue({ 22 el: '#app', 23 data: { 24 forData1:3, 25 forData2:'abcd', 26 forData3:{name:'xixi',age:18}, 27 forData4:[{name:'張飛',age:38},{name:'武松',age:48}] 28 } 29 })
運行結果:
二、v-bind綁定class的幾種寫法
綁定屬性;
縮寫: v-bind:class=" " ---> :class=" "
1. 常見寫法
<div :class="classA"></div>
2. 數組語法
<div :class="[classA,classB]"></div>
3. 對象語法(綁定布爾值、屬性,當判斷條件比較復雜可以綁定方法)
<div :class="{'redFont':true,'blueBorder':ifhasBorder,'bigSize':changeSize()}"></div>
vue實例化配置:
<script src="./vue.js"></script> <script> var vm = new Vue({ el: '#app', data: { classA:'redFont', classB:'blueBorder', ifhasBorder:false }, methods:{ changeSize:function(){ return false; } } }) </script>
運行結果:
三、簡單應用:tab標簽切換
結合 v-for 、v-bind 以及 v-show 指令,實現簡單的tab標簽和內容同步切換,(樣式引用bootstrap.css)。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="./bootstrap.css"> </head> <body> <div id="app"> <ul class="nav nav-tabs"> <li class="nav-item" v-for="(item,idx) in tabs"> <a :class="{'nav-link':true,active:idx===activeIndex}" href="#" @click="changeIdx(idx)">{{item}}</a> </li> </ul> <div v-for="(item,idx) in contents"> <div v-show="idx===activeIndex" style="padding:10px;">{{item}}</div> </div> </div> <script src="./vue.js"></script> <script> var vm = new Vue({ el: '#app', data: { tabs: ["水果", "玩具", "人名"], contents: ['西瓜葡萄大蘋果', '積木拼圖小火車', '大雄小熊小小明'], activeIndex:0 }, methods:{ changeIdx:function(idx){ this.activeIndex = idx; } } }) </script> </body> </html>
運行結果: