當前位置:成語大全網 - 書法字典 - vue對象或數組中的數據會發生變化,但不會更新。

vue對象或數組中的數據會發生變化,但不會更新。

由於JavaScript的限制,Vue無法檢測數組和對象的變化。但是我們仍然有壹些方法來避免這些限制並確保它們的響應性。

Vue無法檢測屬性的添加或刪除。因為Vue將在初始化實例時對屬性執行getter/setter轉換,所以屬性必須存在於數據對象上,以便Vue將其轉換為響應屬性。例如:

對於已創建的實例,Vue不允許動態添加根級響應屬性。但是,您可以使用vue . set(object,property name,value)方法向嵌套對象添加響應屬性。例如,對於:

您也可以使用虛擬機。$set實例方法,它也是全局Vue.set方法的別名:

有時您可能需要為現有對象分配多個新屬性,例如使用Object.assign()或_。擴展()。但是,以這種方式添加到對象的新屬性不會觸發更新。在這種情況下,您應該使用原始對象和要混合的對象的屬性創建壹個新對象。

Vue無法檢測到以下陣列中的更改:

當使用索引直接設置數組項時,例如:VM . items【indexOfItem】= new value。

例如,修改數組長度時,vm.items.length = newLength。

例如:

為了解決第壹類問題,以下兩種方法可以達到與VM . items【indexOfItem】= new value相同的效果,並且還會在響應系統中觸發狀態更新:

您也可以使用虛擬機。$set實例方法,它是全局方法Vue的別名。set:

要解決第二個問題,您可以使用拼接: