Vue 對象和數(shù)據(jù)的強制更新方式
對象和數(shù)據(jù)的強制更新
數(shù)組更新
以下支持自動更新
push()
//向后添加pop()
//刪除最后一個shift()
//刪除第一個unshift()
//向第一個添加元素splice()
//向指定位置添加/刪除元素sort()
//用原地算法對數(shù)組的元素進行排序reverse()
//將數(shù)組中元素的位置顛倒
注意,這種形式修改數(shù)據(jù) this.arr[1] = ‘x’ // 不是響應性的,這種情況,可以采用splice方法修改數(shù)據(jù)即可實現(xiàn)更新
強制更新
this.$set(數(shù)組,下標,修改后的值)
eg:this.$set(this.dataArr,1,{})
對象更新
Vue 不能檢測對象屬性的添加或刪除:
強制更新
this.$set(this.obj, ‘age', 27)
更新數(shù)據(jù)并強制更新視圖
在開發(fā)過程中,有時發(fā)現(xiàn)當數(shù)據(jù)變動后,視圖并未更新。那么下面是一些常見示例的和解決辦法
對象類型
當對象為引用類型,vue不一定能監(jiān)控到 所以當我們新建一個對象并賦值給oldObj字段的話,直接改變了它的指向地址=====》對象和數(shù)組都能用的方法:
this.$set(this,'oldArray',newArray); this.$set(this,'oldObj',newObj); this.$set(this.some.name,‘b',2)
數(shù)組類型
這些不會改變原始數(shù)組,但總是返回一個新數(shù)組。當使用非變異方法時,可以用新數(shù)組替換舊數(shù)組。
push(),pop(),shift(),unshift(),splice(),sort(),reverse()可被vue檢測到 ,filter(), concat(), slice() 。
vue不能檢測以下變動的數(shù)組:
① 當你利用索引直接設置一個項時,vm.items[indexOfItem] = newValue
② 當你修改數(shù)組的長度時,例如: vm.items.length = newLength
異步類型
可在數(shù)據(jù)變化之后立即使用
Vue.nextTick(callback)
這樣回調函數(shù)在 DOM 更新完成后就會調用。
強制更新
this.$forceUpdate(),強制視圖更新
vue多層循環(huán),動態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染。
比如v-for里面數(shù)據(jù)層次太多, 修改過數(shù)據(jù)變了,頁面沒有重新渲染,需手動強制刷新。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
el-date-picker設置日期默認值兩種方法(當月月初至月末)
這篇文章主要給大家介紹了關于el-date-picker設置日期默認值(當月月初至月末)的相關資料,文中通過代碼示例將解決的辦法介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08vue3.0+element表格獲取每行數(shù)據(jù)代碼示例
這篇文章主要給大家介紹了關于vue3.0+element表格獲取每行數(shù)據(jù)的相關資料,在element-ui中,你可以通過為表格的行綁定單擊事件來獲取表格中的一行數(shù)據(jù),需要的朋友可以參考下2023-09-09網(wǎng)站國際化多語言處理工具i18n安裝使用方法圖文詳解
國際化是設計軟件應用的過程中應用被使用與不同語言和地區(qū),下面這篇文章主要給大家介紹了關于網(wǎng)站國際化多語言處理工具i18n安裝使用方法的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-09-09解決element-ui的el-dialog組件中調用ref無效的問題
這篇文章主要介紹了解決element-ui的el-dialog組件中調用ref無效的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02