Vue.js VueJS模型属性不绑定(如果它们不在原始属性列表中)

Vue.js VueJS模型属性不绑定(如果它们不在原始属性列表中),vue.js,data-binding,Vue.js,Data Binding,在VueJs中,如果我的数据中的某个对象具有默认值的属性,它将在我操作它时正确绑定。但是,如果我以后设置了一个全新的属性,则该新属性值将不受约束 我能解释这一点的最佳方式是通过以下示例: 如果我为make(本田、丰田等)输入值,DOM会自动更新。但是,如果我为year输入一个值,则该值不会在div中呈现在它的正上方 如果我改为将默认对象更改为以下对象,则make和year两个属性都将正确绑定:car:{make:'Honda',year:'2012'}这不是错误。然而,对于Vue新手来说,这是一

VueJs
中,如果我的
数据中的某个对象具有默认值的属性,它将在我操作它时正确绑定。但是,如果我以后设置了一个全新的属性,则该新属性值将不受约束

我能解释这一点的最佳方式是通过以下示例:

如果我为
make
(本田、丰田等)输入值,DOM会自动更新。但是,如果我为
year
输入一个值,则该值不会在
div
中呈现在它的正上方


如果我改为将默认对象更改为以下对象,则
make
year
两个属性都将正确绑定:
car:{make:'Honda',year:'2012'}
这不是错误。然而,对于Vue新手来说,这是一个常见的陷阱——尤其是那些背景有棱角的用户

当Vue初始化时,它将应用于Vue实例的
data
对象中的每个属性。但是,Vue无法为不存在的属性设置被动getter和setter

如果希望属性是被动的,则必须使用默认值对其进行初始化:

var app = new Vue({
    el: '#app',
    data: {
        car: {
            make: '',
            year: ''
        }
    }
});

这不是一个bug。然而,对于Vue新手来说,这是一个常见的陷阱——尤其是那些背景有棱角的用户

当Vue初始化时,它将应用于Vue实例的
data
对象中的每个属性。但是,Vue无法为不存在的属性设置被动getter和setter

如果希望属性是被动的,则必须使用默认值对其进行初始化:

var app = new Vue({
    el: '#app',
    data: {
        car: {
            make: '',
            year: ''
        }
    }
});

要使第一个示例成为被动的,数据属性需要有getter和setter。你可以读到它

简而言之,如果您的数据如下所示:

data() {
  return {
    car: {
      make: '',
    },
  },
},
如果您想将属性
year
添加为被动数据,则需要将其设置在某个位置(例如在挂载的钩子中)

但老实说,当您知道需要什么属性时,就可以在开始时将它们添加到数据中

data() {
  return {
    car: {
      make: '',
      year: '',
    },
  },
},

要使第一个示例成为被动的,数据属性需要有getter和setter。你可以读到它

简而言之,如果您的数据如下所示:

data() {
  return {
    car: {
      make: '',
    },
  },
},
如果您想将属性
year
添加为被动数据,则需要将其设置在某个位置(例如在挂载的钩子中)

但老实说,当您知道需要什么属性时,就可以在开始时将它们添加到数据中

data() {
  return {
    car: {
      make: '',
      year: '',
    },
  },
},

为我处理这件事,我很荣幸。谢谢为我处理这件事,我很荣幸。谢谢