为什么data一定是函数

184 阅读1分钟

组件是可复用的vue实例,在项目中,一个组件被创建好就可能会用在各个地方,而用在不同地方的组件都有相应的作用,所有不管组件被复用多少次,在组件中data的数据都应该是相互隔离的,互不影响的。若data是一个对象

data: {
    cocunt: 0
}

在使用中因为内存地址相同,所以当对象发生改变时,所有组件的数据也会同步发生改变
所以一个组件的data选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

data: funtion () {
    return {
        count: 0
    }
}