最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue對象拷貝,解決由于引用賦值修改原對象的方式

 更新時間:2023年10月18日 09:58:41   作者:qq_41831968  
這篇文章主要介紹了vue對象拷貝,解決由于引用賦值修改原對象的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue對象拷貝,解決由于引用賦值修改原對象

在vue項目中,遇到了一個問題,前端需要將后臺返回的數(shù)據(jù)展示在界面上,但是由于多了一個修改功能,點擊修改按鈕會彈出一個彈框,彈框所有要修改的內(nèi)容和之前展示的一樣,在彈框里修改原來界面的值也會一起變化,這顯然不太合適(問題不好描述,直接上代碼吧)

<!-- 展示的界面-->
<el-form-item label="手機號">
 <el-input v-model="form.account"></el-input>
</el-form-item>
<!-- 修改的彈框-->
<el-dialog>
 <el-form-item label="手機號">
  <el-input v-model="form.account"></el-input>
  <el-input v-model="newForm.account"></el-input>
 </el-form-item>
</el-dialog>
export default {
 data() {
  return {
   form: {},
   newForm:{}
  }
 },
 methods: {
  request() { 
   //這里是請求的方法,懶得寫了,因為返回的數(shù)據(jù)才是要處理的重點
   this.$post('xxx/xxxx',params)
    .then(res=>{
      //將返回的數(shù)據(jù)直接賦值給form,然后直接在界面上展示
      this.form = res;
      //這時候問題就來了,因為彈框要修改的內(nèi)容也是同樣的數(shù)據(jù),如果使用同一個對象this.form,
      //那么在彈框里修改的是同一個對象
      //即使新建一個對象再用返回的數(shù)據(jù)給它賦值,結(jié)果也是相同的,因為對象的賦值是引用賦值
      //this.newForm = res;
      //解決方法其實挺簡單,Object.assign解決,
      this.newForm = Object.assign({}, res)
      //使用上面這個方法是完全復制了一個新的對象,即使修改這個newForm也不會影響form
     })
  }
 }
}

vue踩坑--賦值后原對象的值改變

//vue定義變量data() {
   return {     //初始表格數(shù)組對象
        tableData:[],     //被賦值對象
        newlData:[]    //被賦值對象    
   }    
}

問題原因

簡單的賦值沒有創(chuàng)建一個新的對象內(nèi)存地址,只是把newlData的內(nèi)存地址指向了tableData的內(nèi)存地址,一旦tableData的內(nèi)存地址值發(fā)生改變,newlData的數(shù)據(jù)也會對應改變。

解決辦法

方法1、創(chuàng)建一個新的對象,指向新的內(nèi)存地址,通過JSON解析

let datas = JSON.parse(JSON.stringify(this.tableData));

方法2、es6之展開Object.assign(拷貝obj的內(nèi)容到一個新的堆內(nèi)存,copyObj存儲新內(nèi)存的引用)

let datas = Object.assign({},this.tableData);

方法3、es6之展開運算符(僅用于數(shù)組)

let copyArr = [...this.tableData];

總結(jié)

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

相關(guān)文章

  • vue技術(shù)分享之你可能不知道的7個秘密

    vue技術(shù)分享之你可能不知道的7個秘密

    這篇文章主要介紹了vue技術(shù)分享-你可能不知道的7個秘密,需要的朋友可以參考下
    2018-04-04
  • vue3 setup語法糖下的定時器的使用與銷毀

    vue3 setup語法糖下的定時器的使用與銷毀

    如果在組件中需要使用定時器,注意在銷毀組件的時候,要對定時器進行銷毀,否則時間長了會導致頁面卡頓,這篇文章給大家介紹vue3 setup語法糖下的定時器的使用與銷毀的知識,感興趣的朋友一起看看吧
    2024-02-02
  • Vue項目發(fā)布后瀏覽器緩存問題解決方案

    Vue項目發(fā)布后瀏覽器緩存問題解決方案

    在vue項目開發(fā)中一直有一個令人都疼的問題,就是緩存問題,這篇文章主要給大家介紹了關(guān)于Vue項目發(fā)布后瀏覽器緩存問題的解決方案,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Vue-Access-Control 前端用戶權(quán)限控制解決方案

    Vue-Access-Control 前端用戶權(quán)限控制解決方案

    Vue-Access-Control是一套基于Vue/Vue-Router/axios 實現(xiàn)的前端用戶權(quán)限控制解決方案。這篇文章主要介紹了Vue-Access-Control:前端用戶權(quán)限控制解決方案,需要的朋友可以參考下
    2017-12-12
  • vue雙向綁定數(shù)據(jù)限制長度的方法

    vue雙向綁定數(shù)據(jù)限制長度的方法

    這篇文章主要為大家詳細介紹了vue雙向綁定數(shù)據(jù)限制長度的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • vue backtop組件的實現(xiàn)完整代碼

    vue backtop組件的實現(xiàn)完整代碼

    這篇文章主要介紹了vue backtop組件的實現(xiàn)完整代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • vue 引用自定義ttf、otf、在線字體的方法

    vue 引用自定義ttf、otf、在線字體的方法

    這篇文章主要介紹了vue 引用自定義ttf、otf、在線字體的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 簡單的Vue SSR的示例代碼

    簡單的Vue SSR的示例代碼

    本篇文章主要介紹了簡單的 Vue SSR的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 在IDEA中Debug調(diào)試VUE項目的詳細步驟

    在IDEA中Debug調(diào)試VUE項目的詳細步驟

    idea竟然有一個神功能很多朋友都不是特別清楚,下面小編給大家?guī)砹嗽贗DEA中Debug調(diào)試VUE項目的詳細步驟,感興趣的朋友一起看看吧
    2021-10-10
  • Vite的createServer啟動源碼解析

    Vite的createServer啟動源碼解析

    這篇文章主要為大家介紹了Vite的createServer啟動源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09

最新評論

册亨县| 梁河县| 虞城县| 福海县| 古交市| 怀安县| 大安市| 徐闻县| 三穗县| 宁化县| 恩平市| 灵川县| 桐庐县| 阳谷县| 无锡市| 廊坊市| 武功县| 水富县| 南漳县| 浑源县| 山丹县| 通海县| 桦甸市| 隆德县| 南丰县| 南涧| 红安县| 竹溪县| 临江市| 泌阳县| 苏州市| 郑州市| 老河口市| 峨边| 来凤县| 蒙山县| 杭锦后旗| 长葛市| 伊宁市| 孝义市| 蛟河市|