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:
要解決第二個問題,您可以使用拼接: