現象描述:
vue 在使用的時候,當table綁定了某個data的時候.假如某個el-table-column下面的有個方法傳參(data.row),然后在方法中用一個obj=data.row.(這里是淺拷貝).如果在這個方法中把這個參數給了另一個v-model的數據,操作令一個元素的時候會同步更改table中的傳參的那一行的數據.這種傳參方式是淺拷貝,多個地址指向同一個堆,所有兩方會一起修改.
原因:
1.vue的雙向綁定,數據更改同時更改視覺展示
2.函數的形參和實參的傳遞方式是淺拷貝.
解決方案:
1.傳遞實參的時候,先深拷貝一個數據,再傳給函數.
2.形參接收實參的時候不用"=",而是將形參深拷貝一份.再操作拷貝的那份.
深拷貝的方式:
1.先JSON.stringify()和 再JSON.parse()
2.for....in獲取所有屬性以及值,並且給另一個對象(以及其他遍歷屬性的方法).
3.object.assign()方式直接返回一個新對象
