vue 中的 data 为什么是函数?
2020-09-25 本文已影响0人
Moon_cs
new Vue() 实例中,data可以是直接是一个对象,为什么在vue组件中,data必须是一个函数呢?
因为组件是可以复用的,js里对象是引用关系,如果组件data是一个对象,那么子组件中的data 属性值会相互污染,产生副作用。
所以一个组件的data选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝,new Vue的实例是不会被复用的,因此不会存在以上问题。
new Vue() 实例中,data可以是直接是一个对象,为什么在vue组件中,data必须是一个函数呢?
因为组件是可以复用的,js里对象是引用关系,如果组件data是一个对象,那么子组件中的data 属性值会相互污染,产生副作用。
所以一个组件的data选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝,new Vue的实例是不会被复用的,因此不会存在以上问题。