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

时间:2017-11-24 14:42:19

标签: vue.js

请帮我理解下面的问题:

  1. 来自https://alligator.io/vuejs/common-gotchas/
  2. “您无法直接向根数据对象添加新属性,但可以使用”:

      

    Vue.set(this.data,'propname',value)

    1. 来自https://blog.cloudboost.io/reactivity-in-vue-js-2-vs-vue-js-3-dcdd0728dcdf
    2.   

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

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

      感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

“你不能直接向根数据对象添加新属性”的含义是使用键/值赋值方法添加属性不会创建反应对象;没有创建getter和setter,对它的更改不会传播到该属性的任何使用。

另一方面,

Vue.set专门用于创建具有正确getter和setter的属性,允许vue继续运行而不会从反应层中隐藏属性。

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

希望有所帮助。