美文网首页
2018-12-27

2018-12-27

作者: sy_冰糖先生 | 来源:发表于2018-12-27 23:16 被阅读0次

                                                Vue组件中的data必须是一个function的原因分析


    组件可以有自己的data,并且data必须是一个function。

    在下面这个例子中,data 返回了一个在外部定义的对象。并且这个组件在页面中使用了3次,点击+1时出现了如下情况:data中的count属性影响到了所有实例。

    而当data选项是一个函数的时候,每个实例可以维护一份被返回对象的独立的拷贝,这样各个实例中的data不会相互影响,是独立的。

    补充:下面看下vue组件中data必须是一个函数的原因

      vue组件中data值不能为对象,因为对象是引用类型,组件可能会被多个实例同时引用。如果data值为对象,将导致多个实例共享一个对象,其中一个组件改变data属性值,其它实例也会受到影响。

    上面解释了data不能为对象的原因,这里我们简单说下data为函数的原因。data为函数,通过return 返回对象的拷贝,致使每个实例都有自己独立的对象,实例之间可以互不影响的改变data属性值。

    data为函数的示例:

    相关文章

      网友评论

          本文标题:2018-12-27

          本文链接:https://www.haomeiwen.com/subject/kkkjlqtx.html