vue表單修改值后頁面輸入框中的沒有更新(表單的強制刷新)


輸入框帶有選擇按鈕,選擇后控制台可以打印選擇后的數據,但並沒有渲染到對應輸入框。由於ES5限制,Vue不能檢測到對象屬性的添加或刪除。因為 Vue在初始化實例時將屬性轉為 getter/setter,所以屬性必須在 data 對象上才能讓 Vue轉換它,才能讓它是響應的.

深入響應式原理

1.$set()方法重新渲染

this.$set(this.student,"age", 24)

2.$forceUpdate方法

this.$forceUpdate();

兩個表單都需要強制刷新,一個強制刷新,一個未強制刷新會導致沒有強制刷新映射不上,如果兩個都強制刷新可能會導致表單跳不過驗證,

解決采用$set()方法渲染

 this.$set(this.edit,'productName',row.productName)

3.深拷貝

let name2 = JSON.parse(JSON.stringify(this.name));
或者
this.taskForm = Object.assign({}, this.taskForm)

tip: Object.assign()拷貝當對象中只有一級屬性,沒有二級屬性的時候,此方法為深拷貝,但是對象中有對象的時候,此方法,在二級屬性以后就是淺拷貝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM