Vue.js 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

我想更改数组数据,在vue方法中更改它

我的问题是如何使用这样的变量来更改数据

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);
你会得到你所期待的

现在您已经更改了代码:

现在,您正在为数据指定一个新引用,但您的变量仍在查看旧引用。如果您不分配一个新数组,而只是更改它的内容,您将得到您所期望的结果


如需进一步解释,请搜索基元类型和引用类型,例如

,谢谢您的重播。事实上,我想更改数组数据,即引用类型。我更改问题更改代码并不是一个好主意,但您基本上遇到了相同的问题,首先,您复制了值,第二,您正在创建引用的副本,但随后更改了数据引用的内容。您的变量仍将引用原始变量