watch: {
defaultData: {
handler(val) {
if (val) {
console.log("======引用數(shù)據(jù)會(huì)再次觸發(fā)watch變化======", val);
this.description = val.description;
this.parameterList = val.parameterList;
this.barCode = val.barCode;
}
},
deep: true,
immediate: true,
},
},
背景:客戶反饋,操作description之后,在把鼠標(biāo)移動(dòng)到parameterList,description里的值會(huì)變成原先數(shù)據(jù)
結(jié)果:是因?yàn)閜arameterList是引用類(lèi)型,parameterList發(fā)生改變,會(huì)重新觸發(fā)defaultData,然后導(dǎo)致description會(huì)被重新賦予初始值,所以客戶看到好像description值會(huì)變成原先數(shù)據(jù)
注意:以后避免watch里含有對(duì)引用類(lèi)型數(shù)據(jù)的變更,最好都是原始類(lèi)型