欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue對(duì)象的深度克隆方式

 更新時(shí)間:2022年09月08日 09:07:40   作者:久違°  
這篇文章主要介紹了vue對(duì)象的深度克隆方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue對(duì)象的深度克隆

方法1

通過(guò)js序列化,將js轉(zhuǎn)換成字符串,然后再將字符串轉(zhuǎn)換成js對(duì)象

var olbObj = {a:1};
var str = JSON.stringify(obj); //序列化對(duì)象
var newobj = JSON.parse(str); //還原
//相當(dāng)于
var newObj = JSON.parse(JSON.stringify(olbObj ))

方法2

ES6語(yǔ)法對(duì)象展開(kāi)運(yùn)算符進(jìn)行對(duì)象的展開(kāi)賦值

var a = {a:0}
var b = {...a}

方法3

進(jìn)行對(duì)象的遍歷復(fù)制,對(duì) 對(duì)象的每一條屬性進(jìn)行復(fù)制,這樣就能進(jìn)行對(duì)象的深度克隆

function newobj(obj) {
? var str, newobj = obj.constructor === Array ? [] : {};
? //constructor 屬性返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。創(chuàng)建相同類(lèi)型的空數(shù)據(jù)
? if (typeof obj !== 'object') {
? ? return;
? } else {
? ? for (var i in obj) {
? ? ? if (typeof obj[i] === 'object'){//判斷對(duì)象的這條屬性是否為對(duì)象
? ? ? ? newobj[i] = newObj(obj[i]);//若是對(duì)象進(jìn)行嵌套調(diào)用
? ? ? }else{
? ? ? ? newobj[i] = obj[i];
? ? ? }
? ? }
? }
? return newobj;//返回深度克隆后的對(duì)象
}

vue克隆對(duì)象時(shí)遇到的問(wèn)題

我們知道 當(dāng)我們需要深克隆一個(gè)對(duì)象 或者數(shù)組時(shí) 改變這個(gè)得到的數(shù)據(jù),原數(shù)據(jù)保持不變 比較簡(jiǎn)單的用到的函數(shù)基本都是

let b = JSON.parse(JSON.stringify(a))

但是假如我們克隆一個(gè)vue響應(yīng)式對(duì)象時(shí) 發(fā)現(xiàn)用這個(gè)方法沒(méi)啥用

所以需要一個(gè)工具函數(shù)老深克隆

//深克隆?
export const deepClone = (source) => {
? var sourceCopy = source instanceof Array ? [] : {}
? for (var item in source) {
? ? sourceCopy[item] = typeof source[item] === 'object' ? deepClone(source[item]) : source[item]
? }
? return sourceCopy
}
let b = deepClone (a)

這樣就得到響應(yīng)式的啦

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • vue限制輸入數(shù)字或者保留兩位小數(shù)實(shí)現(xiàn)

    vue限制輸入數(shù)字或者保留兩位小數(shù)實(shí)現(xiàn)

    這篇文章主要為大家介紹了vue限制輸入數(shù)字或者保留兩位小數(shù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法示例

    vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法示例

    這篇文章主要介紹了vue防止花括號(hào){{}}閃爍v-text和v-html、v-cloak用法,結(jié)合實(shí)例形式分析了vue.js使用v-text和v-html、v-cloak防止花括號(hào){{}}閃爍的解決方法,需要的朋友可以參考下
    2019-03-03
  • vue-cli3項(xiàng)目升級(jí)到vue-cli4 的方法總結(jié)

    vue-cli3項(xiàng)目升級(jí)到vue-cli4 的方法總結(jié)

    這篇文章主要介紹了vue-cli3項(xiàng)目升級(jí)到vue-cli4 的方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • vue下拉列表功能實(shí)例代碼

    vue下拉列表功能實(shí)例代碼

    這篇文章主要介紹了vue下拉列表功能實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • vue.js指令v-for使用及索引獲取

    vue.js指令v-for使用及索引獲取

    這篇文章主要為大家詳細(xì)介紹了vue.js中v-for使用及索引獲取,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 為Vue3?組件標(biāo)注?TS?類(lèi)型實(shí)例詳解

    為Vue3?組件標(biāo)注?TS?類(lèi)型實(shí)例詳解

    這篇文章主要為大家介紹了為Vue3?組件標(biāo)注?TS?類(lèi)型實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 使用開(kāi)源Cesium+Vue實(shí)現(xiàn)傾斜攝影三維展示功能

    使用開(kāi)源Cesium+Vue實(shí)現(xiàn)傾斜攝影三維展示功能

    這篇文章主要介紹了使用開(kāi)源Cesium+Vue實(shí)現(xiàn)傾斜攝影三維展示,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • vue 自定義icon圖標(biāo)的步驟

    vue 自定義icon圖標(biāo)的步驟

    這篇文章主要介紹了vue 自定義icon的圖標(biāo)的步驟,文中大概給大家分為兩步驟,通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • vue作用域插槽詳解、slot、v-slot、slot-scope

    vue作用域插槽詳解、slot、v-slot、slot-scope

    這篇文章主要介紹了vue作用域插槽詳解、slot、v-slot、slot-scope,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 簡(jiǎn)述vue路由打開(kāi)一個(gè)新的窗口的方法

    簡(jiǎn)述vue路由打開(kāi)一個(gè)新的窗口的方法

    這篇文章主要介紹了vue路由打開(kāi)一個(gè)新的窗口的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11

最新評(píng)論