Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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 Vue合成API-Can';不要向对象添加属性_Javascript_Vue.js - Fatal编程技术网

Javascript Vue合成API-Can';不要向对象添加属性

Javascript Vue合成API-Can';不要向对象添加属性,javascript,vue.js,Javascript,Vue.js,我正在使用Vue的合成API。当我编写一些向ref对象添加属性的代码时,模板渲染器似乎没有检测到更改。这是我的密码: 点击 {{obj[1]} 从“@vue/compositionapi”导入{defineComponent,ref}”; 导出默认定义组件({ 名称:“应用程序”, 设置(){ 常量obj=ref({}); const updateObj=()=>{ 对象值[1]=“你好”; 控制台日志(对象值); }; 返回{ obj, 更新北京, }; }, }); 单击按钮调用upda

我正在使用Vue的合成API。当我编写一些向
ref
对象添加属性的代码时,模板渲染器似乎没有检测到更改。这是我的密码:


点击
{{obj[1]}
从“@vue/compositionapi”导入{defineComponent,ref}”;
导出默认定义组件({
名称:“应用程序”,
设置(){
常量obj=ref({});
const updateObj=()=>{
对象值[1]=“你好”;
控制台日志(对象值);
};
返回{
obj,
更新北京,
};
},
});
单击按钮调用
updateObj
,然后将
obj
上的属性“1”设置为“hello”。如果设置了
obj[1]
,您应该会在浏览器中看到“hello”,但不会显示任何内容


我已经使用合成API好几个月了,感觉自己已经掌握了窍门,但我不知道这里发生了什么。我也尝试了
ref
而不是
ref
,但仍然没有成功。

当你处理原语值时,你应该使用
ref
,如果你想使用一个对象,你必须使用
ref
,他们说:

如果使用ref,我们主要是使用refs将样式(1)转换为更详细的等效样式(以便使原语值具有反应性)

  • 使用反应式与样式(2)几乎相同。我们只需要用reactive创建对象,就这样
  • 使用反应式与样式(2)几乎相同。我们只需要用reactive创建对象,就这样

使用ref和reactive就像在普通JavaScript中声明基元类型变量和对象变量一样。使用此样式时,建议使用具有IDE支持的类型系统

要使其反应,请将对象直接指定给ref的值:

 obj.value = { 1: "hello" };

当您使用基本值时,您应该使用
ref
,如果您想使用对象,您必须使用
反应式
,他们说:

如果使用ref,我们主要是使用refs将样式(1)转换为更详细的等效样式(以便使原语值具有反应性)

  • 使用反应式与样式(2)几乎相同。我们只需要用reactive创建对象,就这样
  • 使用反应式与样式(2)几乎相同。我们只需要用reactive创建对象,就这样

使用ref和reactive就像在普通JavaScript中声明基元类型变量和对象变量一样。使用此样式时,建议使用具有IDE支持的类型系统

要使其反应,请将对象直接指定给ref的值:

 obj.value = { 1: "hello" };

文档中还说:“如果一个对象被指定为ref的值,那么这个对象会被reactive方法深深地激活。”因此ref仍然适用于它。是的,它们的意思类似于
obj.value={1:“hello”}
对象值[1]=“你好”
将其与中提供的演示进行比较OP@BoussadjraBrahim你的评论很有道理。似乎直接分配
obj.value
是一种方法。正如我在DemoDem中所做的那样,文档还说:“如果一个对象被分配为ref的值,那么这个对象会被reactive方法深深地反应。”因此ref仍然适用于它。是的,它们的意思类似于
obj.value={1:“hello”}
对象值[1]=“你好”
将其与中提供的演示进行比较OP@BoussadjraBrahim你的评论很有道理。看起来直接分配
obj.value
是一种方法,就像我在演示中所做的那样