記vue修改陣列屬性,dom不發生變化的問題

2022-07-06 14:54:11 字數 655 閱讀 9077

目錄今天在寫vue的時候,出現了乙個以前可能沒遇到的問題。我利用乙個陣列記錄列表下按鈕的啟用、禁用狀態,但我點選某個列表項按鈕後,會修改當前陣列裡面的狀態值使其解除禁用狀態,我一開始的**寫的是:

連線

斷開列印文字

this.allowprintdevices[index] = false
這樣是不會成功的。

this.$set(this.allowprintdevices, deviceindex, false)
當vue中改變物件元素的情況下,不會重新渲染dom元素,這時候可以用vue的$set方法。

一般情況下就可以實現功能了,也就是改變物件元素後,會重新渲染dom,如果當你使用挺好this.$set方法是,發現並不管用,那麼應該就是你改變的物件層級太深了,沒有辦法觸發reader函式,需要自己手動觸發一下、

this.$forceupdate()

// 舉例

this.$set(this.data[id],"status",true)

官方:如果在例項建立之後新增新的屬性到例項上,它不會觸發檢視更新

參考文獻:vue-給物件新增屬性(使用vue.$set())、深入響應式原理

Vue 修改陣列物件的方法

vue根據index,直接修改陣列是無法做到動態渲染的,以下兩種方法可以動態修改陣列中資料的渲染 1 splice方式,具體參考splice方法 let xaxis let newxaxisitem newxaxisitem.isascending true this.xaxis.splice 0,...

js修改陣列物件裡的物件屬性名

有時候前端請求介面返回的資料,並不是我們想要的資料格式,一般我們會使用map等方法遍歷修改屬性名,但如果資料量很大或者陣列物件的巢狀複雜,這種方法容易降低效率,下面我們使用乙個簡單的方法進行修改 data json parse json stringify data replace title g ...

vue修改陣列中的資料7個方法

var vm newvue script pop 方法用於刪除並返回陣列的最後乙個元素。這裡我直接在瀏覽器控制台演示 push 方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。3.reverse 方法用於顛倒陣列中元素的順序。4.shift 方法用於把陣列的第乙個元素從其中刪除,並返回第乙個元...