Vue 中的 data 为什么必须是函数

118 阅读1分钟

①vue 中组件是用来复用的,为了防止 data 复用,将其定义为函数;
②vue 组件中的 data 数据都应该是相互隔离,互不影响的,组件每复用一次,data 数据就应该被复制一次,之后,当某一处复用的地方组件内 data 数据被改变时,其他复用地方组件的 data 数据不受影响,就需要通过 data 函数返回一个对象作为组件的状态;
③当我们将组件中的 data 写成一个函数,数据以函数返回值形式定义,这样每复用一次组件,就会返回一份新的 data,拥有自己的作用域,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各自的数据;
④当我们组件的 data 单纯的写成对象形式,这些实例用的是同一个构造函数,由于 JavaScript 的特性所导致,所有的组件实例共用了一个 data,就会造成一个变了全都会变的结果;
(参考:blog.csdn.net/qq_42072086…