简体   繁体   English

Vue.js 对新 object 的反应性

[英]Vue.js reactivity for new object

I am trying to make an object reactive for Vue.js (not present in "data", so no reactive by default).我正在尝试使 object 对 Vue.js 具有反应性(“数据”中不存在,因此默认情况下没有反应性)。

I came across this guide using Vue.set, but... How do I set an empty object reactive?我使用 Vue.set 遇到了本指南,但是...如何设置一个空的 object 反应式?

An example for explanation:举例说明:

let app = new Vue({
  el: "#app",

  data: {
    items: [],
  },

methods: {
    setItems: function () {
        this.items[0] = {}; //how to make this reactive?
        Vue.set(this.items[0], 'name', newValue); //newValue should be updated every hour form API response
}

"newValue" is never updated because "{}" is not present in "data", but I don't know how to use Vue.set in this case. “newValue”永远不会更新,因为“数据”中不存在“{}”,但我不知道在这种情况下如何使用 Vue.set。

Any idea on how to solve it without adding this code below?关于如何在不添加以下代码的情况下解决它的任何想法?

data: {
    items: [{}],
  },

Thank you very much!非常感谢!

How about the following approach?下面的方法怎么样?

setItems: function () {
    Vue.set(this.items, 0, { 'name': newValue })
}

Example: https://jsfiddle.net/7mejxybg/3/示例: https://jsfiddle.net/7mejxybg/3/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM