当前位置: 首页 > 知识库问答 >
问题:

Vue.set()方法中的第一个参数

凌朗
2023-03-14

请帮助我理解以下问题:

  1. 从 https://alligator.io/vuejs/common-gotchas/

“您不能直接向根数据对象添加新属性,但可以使用”:

Vue.set(this.data, “道具名称”, 值)

Vue.set(this.$data,'lastAddedName','John Elway');

但是 Vue.set() 上面的方法中的第一个参数:“this.data” 或 “this.$data”,它是根数据对象,因此控制台中会引发错误。所以上面的文档是错误的还是我误解了?

谢谢你的帮助。

共有1个答案

那宏大
2023-03-14

他们所说的“您不能直接向根数据对象添加新属性”的意思是,使用键/值赋值方法添加属性不会创建反应式对象;不会创建 getter 和 setter,对它的更改不会传播到该属性的任何用途。

另一方面,Vue.set是专门为使用正确的getter和setter创建属性而编写的,允许vue继续运行,而不会将属性隐藏在反应层中。

他们使用Vue.set的方式不正确,Vue不会在vue实例本身设置值;它还会在开发模式下发出警告。

希望这有帮助。

 类似资料: