Javascript VueJS可以';t将输入绑定到beforeMount钩子中生成的属性

Javascript VueJS可以';t将输入绑定到beforeMount钩子中生成的属性,javascript,vue.js,data-binding,Javascript,Vue.js,Data Binding,我试图在beforeMounthook中生成一系列嵌套的对象。 我试图在输入之间强制执行的任何数据绑定都不起作用。没有错误 下面是我正在做的一个简单版本,它封装了这个问题 newvue({ el:“应用程序”, 数据(){return{ 多:{}, ID:[“eaf”、“6ef”、“3ey”] }}, 安装前(){ this.ids.forEach(i=>{ 这个.多[i]={ 姓名:“, } }) } }) 群{{i} {{multi[i].name} Vue不会在已经反应的对象中检测到新

我试图在
beforeMount
hook中生成一系列嵌套的对象。 我试图在输入之间强制执行的任何数据绑定都不起作用。没有错误

下面是我正在做的一个简单版本,它封装了这个问题

newvue({
el:“应用程序”,
数据(){return{
多:{},
ID:[“eaf”、“6ef”、“3ey”]
}},
安装前(){
this.ids.forEach(i=>{
这个.多[i]={
姓名:“,
}
})
}
})

群{{i}

{{multi[i].name}


Vue不会在已经反应的对象中检测到新道具。您应该使用Vue.$set,或者事先使用所有必要的道具创建多重对象。请参见

Vue不会在已反应的对象中检测到新道具。您应该使用Vue.$set,或者事先使用所有必要的道具创建多重对象。请参见

填充对象不需要多次调用
$set
。您也可以这样做:

beforeMount () {
    const multi = {};
    this.ids.forEach(i=> {
        multi[i] = {
          name: "",
        }
    })
    this.multi = multi;
}

这是因为您不必在
This.multi
上设置属性,而是创建一个新对象并将现有数据属性设置为该对象。Vue可以检测到此更改。

填充对象不需要多次调用
$set
。您也可以这样做:

beforeMount () {
    const multi = {};
    this.ids.forEach(i=> {
        multi[i] = {
          name: "",
        }
    })
    this.multi = multi;
}

这是因为您不必在
This.multi
上设置属性,而是创建一个新对象并将现有数据属性设置为该对象。Vue可以检测到这种变化。

ooh我明白了。。该死,我也这么想。我正在创建的对象非常大,并且考虑到上下文,我无法提前知道该对象将有多大,或者它将包含哪些属性。我将查看vue设置。非常感谢,哦,我明白了。。该死,我也这么想。我正在创建的对象非常大,并且考虑到上下文,我无法提前知道该对象将有多大,或者它将包含哪些属性。我将查看vue设置。非常感谢,哦,我明白了。我不知道。非常感谢你分享,不客气。我更喜欢尽可能少地使用
$set
,而且它不在VUE3中使用。另外,直接设置数据还允许在其他地方创建对象(如外部API),而无需导入Vue并使用
Vue.set
。哦,我明白了。我不知道。非常感谢你分享,不客气。我更喜欢尽可能少地使用
$set
,而且它不在VUE3中使用。另外,直接设置数据还允许在其他地方创建对象(如外部API),而无需导入Vue并使用
Vue.set