Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript v-model如何使对象的属性具有反应性?_Javascript_Vue.js_V Model - Fatal编程技术网

Javascript v-model如何使对象的属性具有反应性?

Javascript v-model如何使对象的属性具有反应性?,javascript,vue.js,v-model,Javascript,Vue.js,V Model,链接到我的项目: 在我上面的链接中,“组件”文件夹中有一个名为HelloWorld.vue的文件: inputvalue.bbbb是在数据选项中定义的被动数据,但 奇怪的是,inputvalue.cccc在使用v型输入后会变为反应型,但inputvalue.cccc不会与@input反应 在这个问题()中,不可能出现第一种情况。使用v-model将自动使用$set设置嵌套属性上的值。这确保了它可以与数组索引一起工作,也可以与不存在的对象属性一起工作,如您的示例所示 如果您不熟悉$set,请参见

链接到我的项目:

在我上面的链接中,“组件”文件夹中有一个名为HelloWorld.vue的文件:
inputvalue.bbbb
是在数据选项中定义的被动数据,但

奇怪的是,
inputvalue.cccc
在使用v型输入后会变为反应型,但
inputvalue.cccc
不会与
@input
反应


在这个问题()中,不可能出现第一种情况。

使用
v-model
将自动使用
$set
设置嵌套属性上的值。这确保了它可以与数组索引一起工作,也可以与不存在的对象属性一起工作,如您的示例所示

如果您不熟悉
$set
,请参见以下文档:

Vue中
v-model
这部分的代码如下:

在您的示例中,有两个输入使用
cccc
。正如您所注意到的,如果您编辑使用
v-model
的输入,则一切正常。但是,如果先使用
:value
/
@input
输入,则即使随后使用
v-model
输入,它也不起作用。奇怪的是,行为是由您首先编辑的两个输入中的哪一个决定的

原因可以在
$set
的代码中看到:


问题在于,
$set
只会在属性不存在的情况下添加被动属性。因此,如果您首先使用
:value
/
@input
input,它将创建一个非反应性
cccc
属性,一旦创建,它就不能成为反应性属性,即使您使用
$set
。必须使用
delete
删除它,然后才能反应性地重新添加它。

请正确解释您的问题。但是……如何拦截$set调用?