Vue中data()和create()中添加数据的区别

Ema*_*non 3 vue.js vue-component vuejs2

以下有区别吗?我见过同时执行这两种操作的示例,但不确定为什么您会选择其中之一。

Vue.component('test', {

        data() {
           return { myDataA: 10 };
        }

        //vs

        created() {
           this.myDataB = 10;
        }
    }
Run Code Online (Sandbox Code Playgroud)

ffx*_*sam 5

created()on中设置的变量this不会起作用。为了使它们具有反应性,您必须在 . 返回的对象中定义它们data()

示例(注意输出中的文本如何不变): https: //jsfiddle.net/oyf4quyL/

  • 这并不完全正确。对于根级数据属性来说确实如此,但对于嵌套属性则不然。`Vue.set(object, key, value)` 可用于为 `data` 中的嵌套对象定义新的响应式属性。我觉得这个区别很重要。更一般地说,如果您接受“prop”并希望有一个本地副本进行变异,则应该只在“created()”或另一个生命周期挂钩中设置属性,即使如此,也需要事先定义任何根级属性到初始化。 (2认同)