Vue.js vue组件方法按变量更改数据
我想更改数组数据,在vue方法中更改它 我的问题是如何使用这样的变量来更改数据Vue.js vue组件方法按变量更改数据,vue.js,vue-component,Vue.js,Vue Component,我想更改数组数据,在vue方法中更改它 我的问题是如何使用这样的变量来更改数据 created() { var a=this.thisisarray; this.thisisarray=[10]; console.log('a expected '+this.thisisarray+',but '+ a); } 可以直接使用这个。这个数组。但是更改变量a不起作用。我的变量仍在查看旧的引用。我总是得到预期的10,但是9999 我想创建一个全局方法,并传递变量a来更改它 Vue.co
created() {
var a=this.thisisarray;
this.thisisarray=[10];
console.log('a expected '+this.thisisarray+',but '+ a);
}
可以直接使用这个。这个数组。但是更改变量a
不起作用。我的变量仍在查看旧的引用。我总是得到预期的10,但是9999
我想创建一个全局方法,并传递变量a
来更改它
Vue.component('page-head', {
template: '#page-head',
data() {
return {
thisisarray:['a','b']
};
},
created() {
var a=this.thisisarray;
this.thisisarray=[10];
console.log('a expected '+this.thisisarray+',but '+ a);
}
})
数字是复制的t
在复制后独立于tom
这不是vue,这是javascript的工作方式。您正在与引用类型混淆。如果你有
{
tom: { value: 9999 }
}
然后呢
var t = this.tom;
this.tom.value = 10
console.log('t expected '+this.tom.value +',but '+ t.value);
你会得到你所期待的
现在您已经更改了代码:
现在,您正在为数据指定一个新引用,但您的变量仍在查看旧引用。如果您不分配一个新数组,而只是更改它的内容,您将得到您所期望的结果
如需进一步解释,请搜索基元类型和引用类型,例如,谢谢您的重播。事实上,我想更改数组数据,即引用类型。我更改问题更改代码并不是一个好主意,但您基本上遇到了相同的问题,首先,您复制了值,第二,您正在创建引用的副本,但随后更改了数据引用的内容。您的变量仍将引用原始变量