为什么Vue中data必须是一个函数?

先看官网给的解释:

当一个组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。

简单来说:

将data写成函数的主要目的就是为了保证组件的独立性和可复用性,防止组件实例间data的引用关系,避免变量污染

详细来说:

1.每个组件都会创建一个Vue实例,这时就会共同存在多个实例

2.这些组件会共享同一个data属性,如果单纯的写成对象形式,就使得所有组件实例共用了一份data,就会造成一个改变全都会改变的结果。

3.所以当组件中的data写成一个函数时,数据会以函数返回值形式定义,这样每复用一次组件,就会反回一份新的data,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据。如果单纯的写成对象形式,就使得所有组件实例共用了一份data,就会造成一个改变全都会改变的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值