【问题标题】:How to hold data without change in vue jsvue js中如何保持数据不变
【发布时间】:2018-06-17 09:59:32
【问题描述】:

我有一个这样的用户信息对象

data: function(){
  return {
    userinfo: {
       name:'',
       username:'',
       imagePath:''
   },
    previousUserInfo:{}
  }
 }

我在其他地方显示此用户信息:

<template>
  <div> user name: {{userinfo.name}}</div>
  <div> username: {{userinfo.username}}</div>
                  ....

在某些情况下,当前用户发生变化,我应该将以前的用户数据保存在 previousUserInfo 对象中:

 this.$set(this, 'previousUserInfo', this.userinfo);

但是当用户在 userinfo 中填写新数据时,previousUserInfo 数据也会发生变化。

我也尝试使用另一个变量来保存数据,但 reuslts 是相同的:

var previousUserInfo = this.userinfo;
this.$set(this, 'previousUserInfo', previousUserInfo);

有什么问题?

【问题讨论】:

    标签: javascript vue.js vuejs2


    【解决方案1】:

    this.userinfothis.previousUserInfo 指向同一个对象。

    你可以尝试做this.userinfo的深拷贝值

     this.$set(this, 'previousUserInfo', JSON.parse(JSON.stringify(this.userinfo));
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 2020-12-19
      • 1970-01-01
      • 2019-12-04
      • 2018-04-02
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 2013-06-06
      相关资源
      最近更新 更多