Vue 對象和數(shù)據(jù)的強制更新方式
對象和數(shù)據(jù)的強制更新
數(shù)組更新
以下支持自動更新
push()//向后添加pop()//刪除最后一個shift()//刪除第一個unshift()//向第一個添加元素splice()//向指定位置添加/刪除元素sort()//用原地算法對數(shù)組的元素進(jìn)行排序reverse()//將數(shù)組中元素的位置顛倒
注意,這種形式修改數(shù)據(jù) this.arr[1] = ‘x’ // 不是響應(yīng)性的,這種情況,可以采用splice方法修改數(shù)據(jù)即可實現(xiàn)更新
強制更新
this.$set(數(shù)組,下標(biāo),修改后的值)
eg:this.$set(this.dataArr,1,{})對象更新
Vue 不能檢測對象屬性的添加或刪除:
強制更新
this.$set(this.obj, ‘a(chǎn)ge', 27)
更新數(shù)據(jù)并強制更新視圖
在開發(fā)過程中,有時發(fā)現(xiàn)當(dāng)數(shù)據(jù)變動后,視圖并未更新。那么下面是一些常見示例的和解決辦法
對象類型
當(dāng)對象為引用類型,vue不一定能監(jiān)控到 所以當(dāng)我們新建一個對象并賦值給oldObj字段的話,直接改變了它的指向地址=====》對象和數(shù)組都能用的方法:
this.$set(this,'oldArray',newArray); this.$set(this,'oldObj',newObj); this.$set(this.some.name,‘b',2)
數(shù)組類型
這些不會改變原始數(shù)組,但總是返回一個新數(shù)組。當(dāng)使用非變異方法時,可以用新數(shù)組替換舊數(shù)組。
push(),pop(),shift(),unshift(),splice(),sort(),reverse()可被vue檢測到 ,filter(), concat(), slice() 。
vue不能檢測以下變動的數(shù)組:
① 當(dāng)你利用索引直接設(shè)置一個項時,vm.items[indexOfItem] = newValue
② 當(dāng)你修改數(shù)組的長度時,例如: vm.items.length = newLength
異步類型
可在數(shù)據(jù)變化之后立即使用
Vue.nextTick(callback)
這樣回調(diào)函數(shù)在 DOM 更新完成后就會調(diào)用。
強制更新
this.$forceUpdate(),強制視圖更新
vue多層循環(huán),動態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染。
比如v-for里面數(shù)據(jù)層次太多, 修改過數(shù)據(jù)變了,頁面沒有重新渲染,需手動強制刷新。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
webpack4+Vue搭建自己的Vue-cli項目過程分享
這篇文章主要介紹了webpack4+Vue搭建自己的Vue-cli,對于vue-cli的強大,使用過的人都知道,極大的幫助我們降低了vue的入門門檻,感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08
vue?cli3配置image-webpack-loader方式
這篇文章主要介紹了vue?cli3配置image-webpack-loader方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Jenkins?Sidebar?Link插件實現(xiàn)添加側(cè)邊欄功能詳解
這篇文章主要介紹了vue框架實現(xiàn)添加側(cè)邊欄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
vue如何使用formData傳遞文件類型的數(shù)據(jù)
這篇文章主要介紹了vue如何使用formData傳遞文件類型的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
完美解決vue引入BMapGL is not defined的問題
在Vue項目中使用BMapGL時,通過在src下添加bmp.js文件并配置密鑰(ak),可以有效解決地圖API的應(yīng)用問題,本方法是基于個人經(jīng)驗總結(jié),希望能為開發(fā)者提供參考和幫助2024-10-10
vue3+ts+vant移動端H5項目搭建的實現(xiàn)步驟
本文主要介紹了vue3+ts+vant移動端H5項目搭建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
vue3循環(huán)設(shè)置ref并獲取的解決方案
我們在平時做業(yè)務(wù)的時候,父子組件通信會經(jīng)常用到ref,這篇文章主要給大家介紹了關(guān)于vue3循環(huán)設(shè)置ref并獲取的解決方案,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02

