2017-01-06 145 views
0

可以說我有(在地圖上的位置)的陣列,我環路後如何訴諸組件:通過渲染主題

<div class="row" v-for="place in places"> 
     <place :place="place" v-if="place.distance"></place> 
</div> 

後的分量被呈現我的頁面。該數組得到更新,所以我想在數組更新後重新排列我的頁面中的組件。 是有辦法做到這一點,或者只是停止組件,直到陣列進行更新(我呼籲谷歌的geolocalisation),然後(通過位置之間的距離排序)

+2

這應該工作就像它是。如果沒有,請顯示更新陣列的方式。 –

+0

因此,如果我觸發了任何可以改變數組的函數,Vuejs會自動更新所有內容? – brahimm

回答

2

使他們在正確的順序作爲註釋掉,你不不需要爲此做任何事情,vue包裝觀察數組的突變方法,以便它們也將觸發視圖更新,如解釋here。被包裝的方法有:

  • 推()
  • 彈出()
  • 移()
  • 不印字()
  • 剪接()
  • 排序()
  • 反向()

你可以在這裏看到工作演示如何重排h出現here

樣品JS代碼:

Vue.component('comp2', { 
    props: ['title'], 
    template: '#comp2' 
}) 

new Vue({ 
    el: '#app', 
    data: { 
    compArray: ['comp1', 'comp2', 'comp3'] 
    }, 
    methods: { 
    resuffle: function() { 
     this.compArray.splice(0,1) 
     this.compArray.push(this.compArray[0]) 
    } 
    }, 
}) 

相關HTML:

<div v-for="comp in compArray"> 
     <comp2 :title="comp"> 
    </div>