云驹博客

路漫漫其修远兮,吾将上下而求索。

0%

Vue为什么data是一个函数

为什么组件的 data 是一个函数

​ data 写成函数,用返回值形式定义变量,这样做的是要避免组件重用时数据冲突,因为组件是可复用的,会出现多例的情况, 如果写成对象形式,会出现所有组件实例共用一个 data 的情况,会出现一个组件改变了 data 中值所有组件中都会变的结果。

​ 使用函数返回值定义变量,是给每个实例创建了一个私有的数据存储空间,让各自的组件实例维护各自的数据。

为什么 Vue 根实例中的 data 不用写成函数

使用 new Vue 创建的实例是单例的,不会出现多例,不会出现冲突的情况。