vue陣列的深克隆和淺克隆
在開發過程中,前端獲取到後端的資料之後,通常直接複製後就使用,比如:
var _data = res.data; //淺克隆 data是一個陣列
這就是淺克隆的寫法,因為後端返回的data是一個陣列,而陣列是引用資料型別(自行了解基本資料型別和引用資料型別)
如果我們接下來的程式碼對 _data 進行的處理操作,res.data也會一起改變,這是因為淺克隆, 克隆的是一個地址,而不是實際變數值。
下面我用我的實際專案,演示下 深克隆和淺克隆的區別:
淺克隆:源資料與克隆資料一起改變
現在我們克隆資料的時候改成 深克隆,其他的不變
深克隆:源資料沒有隨克隆資料一起改變
從上面可以看到,我使用了JSON.stringify+JSON.parse 進行深克隆,這能滿足很大一部分開發需求了,當然,深克隆的方法還有很多,比如:遞迴、 jQuery中的 $.extend、slice(0)、object.assign、for迴圈遍歷賦值、new Object() 等都是可以的
開發過程的記錄,若有不恰當之處,歡迎指正!
相關文章
- java深克隆(深拷貝)和淺克隆(淺拷貝)Java
- js中深克隆與淺克隆JS
- 深入理解Java的淺克隆與深克隆Java
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- JAVA 基礎 – clone淺克隆與深克隆Java
- JAVA 基礎 - clone淺克隆與深克隆Java
- 原生js實現物件的深克隆以及淺克隆JS物件
- js之物件深淺克隆JS物件
- JS型別判斷、物件克隆、陣列克隆JS型別物件陣列
- 克隆一個陣列的方法陣列
- JAVA設計模式 2【建立型】原型模式的理解與使用、理解淺克隆和深克隆Java設計模式原型
- Vue.js - 陣列和物件的賦值動態變化 & 克隆Vue.js陣列物件賦值
- 三目運算、物件克隆、深拷貝和淺拷貝物件
- js deep clone 深克隆JS
- JavaScript深層克隆物件JavaScript物件
- 淺談克隆 JavaScriptJavaScript
- 什麼要使用克隆、如何實現克隆物件、序列化與反序列實現克隆的好處、深拷貝與淺拷貝物件
- vue 對資料的克隆Vue
- js 陣列的淺拷貝和深拷貝JS陣列
- 前端戰五渣學JavaScript——深克隆(深拷貝)前端JavaScript
- clone 淺克隆帶來的問題
- CoffeeScript攻略2.1:克隆物件(深複製)物件
- vue 克隆物件時遇到的問題Vue物件
- deepClone, extend, 深克隆物件和Object.assign(ES6)物件Object
- 面試官:請你實現一個深克隆面試
- Javascript 繼承和克隆JavaScript繼承
- 如何深淺拷貝陣列(總結)陣列
- Oracle 12C 新特性之 PDB熱克隆(本地克隆、遠端異機克隆)Oracle
- javascript深度克隆JavaScript
- 克隆專案
- js 深度克隆JS
- Rust克隆陷阱?Rust
- 使用c#強大的表示式樹實現物件的深克隆C#物件
- Java中的物件“克隆”Java物件
- js物件的深度克隆!JS物件
- VUE 中 的深拷貝和淺拷貝Vue
- windows賬號克隆Windows
- js深度克隆物件JS物件