"测试"是我的vue数据中的一个对象数组

var vue = new Vue({
  el: '#content',

  data: {
    test: [
      {
        array: [0, 0, 0, 0]
      },
      {
        array: [0, 0, 0, 0]
      }
    ],
    number: 0
  },

  methods: {   
    setNumber: function(){
      this.number = 5;
    },

    setArray: function(){
      this.test[0].array[0] = 9;
    }
  }
})

问题是,如果我更改了"array"中某个元素的值,而log显示该值已更改,则它不会在页面上更新.另一方面,如果我更改"number"的值,页面上的"number"和"array"值都会更新.

<section id="content">
  <div>Value in array: {{ test[0].array[0] }}</div>
  <div>Value in number: {{ number }}</div>
  <!-- {{ setNumber() }} -->
  {{ setArray() }}
</section>

<!-- Loading Vue.js -->
<script src="https://unpkg.com/vue"></script>
<script src="https://cdn.jsdelivr.net/vue.resource/1.3.1/vue-resource.min.js"></script>

如何使我的页面响应"数组"更新

推荐答案

这是由于array change caveats.

这样做吧

var vue = new Vue({
  el: '#content',

  data: {
    test: [{
      array: [0, 0, 0, 0]
    }, {
      array: [0, 0, 0, 0]
    }],
    number: 0
  },

  methods: {
    setNumber: function() {
      this.number = 5;
      console.log(this.number);
    },
    setArray: function() {
      //this.test[0].array[0] = 9;
      this.$set(this.test[0].array, 0, 9);
      console.log(this.test[0].array[0]);
    }
  }
});

这是fiddle美元

Vue.js相关问答推荐

在VueJS中卸载元素之前是否应该删除JavaScript事件收件箱?

Vue3:如何在功能组件中重用插槽vnode

如何只提取一次用于无线电组过滤的数据,而不是针对数据库中的每个条目提取数据?

如何将模板传递给EJS菜单

在 Vue 中删除自定义组件代码重复的方法?

使用 vue.js 的 axios 预检失败错误 301

为什么不先移动鼠标就无法滚动视差?

CLI 3 - 如何为 CSS/Sass 创建vendor bundle ?

VueJS + Typescript:类型上不存在属性

如何在nuxt路由中添加meta?

JavaScript/VueJS:判断数组是否包含具有特定值元素的对象

Vue.js 无法切换字体真棒图标

为什么 v-model 不适用于数组和 v-for 循环?

我应该将所有数据存储在 vuex 状态

beforeCreate 挂钩中的 Vue 2.1 调用方法不起作用

从子组件 Vue 更新父模型

无法访问手表处理程序 vuejs 中的数据变量

VS Code - 在 .vue 文件中启用 autoClosingTags 选项

在 Vue 单元测试中单击按钮时触发表单提交

如何在 vuejs 中的基于类的组件中编写计算设置器