Vue資料不渲染問題

wade3po發表於2019-01-25

使用vue開發專案的時候,幾乎都會遇到一個問題,資料改變了,但是頁面沒有渲染。這種情況下一般都是陣列和json才會發生。

在初始化的時候,如果是一個陣列,使用push方法進行賦值,資料改變了,頁面不會重新渲染,因為陣列push的時候沒有觸發render函式。這時候可以使用中間陣列的形式進行賦值,就是直接this.list = data,或者是直接使用vue提供的set方法。

在區域性改變摸個json的欄位的時候,也有可能資料不會渲染,那是因為json層次的問題,vue沒辦法監聽到那麼深,json也可以用set方法觸發。

當我們請求資料,得到了資料,頁面渲染成功了,但是會報錯,報的錯還是這個資料的某個欄位未定義。那是因為vue在掛載的時候已經先渲染了一遍,第一遍的時候資料確實沒有,等你請求到了資料,vue會重新渲染,所以頁面渲染出了資料,但是報錯了。這時候可以在標籤裡面用v-if這個資料,表示在沒有資料的時候隱藏了,等到有了資料才去觸發重新渲染,這樣就不會報錯了。

要是以上兩個方法還是不能使頁面重新渲染,有人說是強制性觸發render函式,this.$forceUpdate();本人使用set方法能解決暫時遇到的這個問題,所以這個方法待測試。

歡迎關注Coding個人筆記 公眾號

相關文章