vue雙向綁定和深淺拷貝


現象描述:

          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()方式直接返回一個新對象


免責聲明!

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



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