1. 程式人生 > >從vue渲染想到的陣列方法

從vue渲染想到的陣列方法

 1   <div id="app">
 2         <ul>
 3             <li v-for='item in goods'>{{item}}</li>
 4         </ul>
 5 
 6         <div>{{a}}</div>
 7       
 8         <button v-on:click='demo'>click</button>//由於js的弱點導致的,vue無法檢測到陣列內部的變化,只能檢測到地址變化
 9     </div>
10
<script> 11 var vm = new Vue({ 12 el: '#app', 13 data: { 14 a: 1, 15 goods: ['aa', 'bb', 'cc', 'rrr'] 16 }, 17 methods: { 18 demo: function () { 19 this.goods=this.goods.concat(1,2,3)//
改變原陣列,能重新渲染 20 this.goods.concat(1,2,3)//不改變原陣列,不能重新渲染 21 this.goods.splice(1)//splice方法能夠改變原陣列會重新渲染
Vue.set(this.goods,1,'fff')//用set方法 能夠檢測到到變化

22 } 23 } 24 }) 25 </script>

v-for指令如果渲染的物件沒有改變地址,則不會重新渲染