Vuejs2 Vue2变量的意外行为
我对Vue2变量有一些问题 我的目标是创建从Axios调用中提取的变量的备份,然后使用该备份将主变量重置回原始值。主变量称为Vuejs2 Vue2变量的意外行为,vuejs2,Vuejs2,我对Vue2变量有一些问题 我的目标是创建从Axios调用中提取的变量的备份,然后使用该备份将主变量重置回原始值。主变量称为loaded_data,副本称为original_data 我的问题是,当我复制变量时,它是通过引用传递的,而不是值。因此,当我更新我的加载的\u数据变量时,原始\u数据 变量的定义方式: data() { return { loaded_data: false, original_data: false, }; }, 变量的设置方
loaded_data
,副本称为original_data
我的问题是,当我复制变量时,它是通过引用传递的,而不是值。因此,当我更新我的加载的\u数据
变量时,原始\u数据
变量的定义方式:
data() {
return {
loaded_data: false,
original_data: false,
};
},
变量的设置方式:
this.loaded_data = axios_response.response.data;
this.original_data = axios_response.response.data;
重置数据功能
reset_data() {
console.log('ORIGINAL', this.original_data);
console.log('LOADED', this.loaded_data);
this.loaded_data = this.original_data;
},
ORIGINAL {__ob__: Observer}
value: "this is an update to the data"
LOADED {__ob__: Observer}
value: "this is an update to the data"
因此,当我更新加载的\u数据时
变量。例如:
loaded_data.value = 'this is an update to the data';
它还更新了原始的_数据变量。如果我运行reset\u data()
函数,控制台日志如下所示
reset_data() {
console.log('ORIGINAL', this.original_data);
console.log('LOADED', this.loaded_data);
this.loaded_data = this.original_data;
},
ORIGINAL {__ob__: Observer}
value: "this is an update to the data"
LOADED {__ob__: Observer}
value: "this is an update to the data"
它应该是什么样子的:
ORIGINAL {__ob__: Observer}
value: ""
LOADED {__ob__: Observer}
value: "this is an update to the data"
它没有真正意义,因为已加载的\u数据
和原始\u数据
没有链接到重置\u数据
功能旁边,并使用axios\u响应设置它
任何帮助或想法都会非常有用。JavaScript将同一对象复制到两个变量中。您需要对象的第二个副本作为原始\u数据
。一种方法是使用
this.original_data = JSON.parse(JSON.stringify(axios_response.response.data));
在你得到数据之后