# 组件data选项为何是函数

1、Vue组件可能存在多个实例,如果使用对象形式定义data,则会导致多个实例共用一个data对象,无论哪个实例将状态更新了,都将影响其他组件实例。使用函数的方式,在inintData时会将其视为工厂函数返回全新的data对象。有效规避了组件之间状态污染问题。在Vue根实例中则无该限制,因为根实例只能有一个。

2、vue中data必须是函数是为了保证组件的独立性和可复用性,data是一个函数,组件实例化的时候这个函数将会被调用,返回一个对象,计算机会给这个对象分配一个内存地址,你实例化几次,就分配几个内存地址,他们的地址都不一样,所以每个组件中的数据不会相互干扰,改变其中一个组件的状态,其它组件不变。

Last Updated: 3/5/2022, 2:51:04 PM