Vue里的data为什么是函数,而不是对象


1.大家看到Vue中的函数

data( )

{

return { }

}

是否有过思考,为什么data是函数,而不是对象呢

相信很多学过闭包的同学就灵机一动,脑门一拍,这个data怎么像一个闭包啊

对,你想的没错,这就是一个典型的闭包

因为闭包可以简单理解为:方法里面返回一个方法

如果不清楚的同学可以看我写的上篇博文:闭包得从底层理解

2.闭包最重要的特性:实现对数据的私有和封装

data写成函数(闭包)的形式,相当于给每一个组件创建了一个私有数据空间

也就是说:A组件数据data只可以为A服务,B组件数据data只可以为B服务

A组件数据data不会影响B组件数据data,B组件不会影响A组件

私有的数据空间,各组件数据不会受影响


3.如果用对象,所有组件的就不能实现私有,只能共用

就像共用一间卫生间,而不是独立卫生间

共用的卫生间只要有人用过,你就会发现变化啦

就会牵一发动全身,造成数据发生改变

Supongo que te gusta

Origin blog.csdn.net/qq_48731430/article/details/121489813
Recomendado
Clasificación