Javascript Vue合成API-Can';不要向对象添加属性
我正在使用Vue的合成API。当我编写一些向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
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
是一种方法,就像我在演示中所做的那样