问题描述:为什么在vue组件中,我们的data属性必须是一个函数,new Vue()中的data除外,因为new Vue中只有一个data属性。

原因:因为我们能抽离出来的组件,肯定是具有复用性的,它在项目中会存在多个实例。如果data属性值是一个对象时,那么它所有的实例都会共享这些数据,这是很麻烦的事情,你不能确保你的所有实例中的属性值都不会重复。

我们的期望是,组件的每个实例都能独立的维护自己的数据。

我们都知道,在JavaScript中,函数具有独立作用域块的特点,外部是无法访问其内部的变量。

试想一下,如果我们组件中的data属性是一个函数,他的每个实例就会有自己的作用域空间,也就是独立的数据,每个实例之间不会相互影响。

所以,组件中的data属性必须是一个函数。

问题描述:为什么在vue组件中,我们的data属性必须是一个函数,new Vue()中的data除外,因为new Vue中只有一个data属性。原因:因为我们能抽离出来的组件,肯定是具有复用性的,它在项目中会存在多个实例。如果data属性值是一个对象时,那么它所有的实例都会共享这些数据,这是很麻烦的事情,你不能确保你的所有实例中的属性值都不会重复。我们的期望是,组件的每个实例都能独立的维护自己的数据。解决方案我们都知道,在JavaScript中,函数具有独立作用域块的特点,外部是无法访问其内
组件 data 可以是 函数 也可以是 对象 ,不会产生数据污染 但是 组件 data 必须是一个 函数 ,返回一个新的 对象 ,如果 data 是一个普通的 对象 ,所有用到这个 组件 的都引用的同一个 data ,就会造成数据污染。 不使用return包裹的数据会在项目的全局可见,会造成变量污染;使用return包裹后数据 变量只在当前 组件 生效,不会影响其他 组件 。 当一个 组件 定义 data 必须声明为返回一个初始数据 对象 函数 ,因为 组件 可能被用来创建多个实例。如果 data 仍然是一个纯粹的 对象 ,则所有的实例将共享引用同一.
分析 Vue.js 组件 data 为何是 函数 类型而非 对象 类型引言正文一、 Vue.js data 的使用 要理解本篇文章,必须具备 JavaScript 对象 的概念,如果有想要深入了解的小伙伴,可以查看我之前剖析的js 对象 概念的一篇文章——充分了解 JavaScript 对象 ,顺便弄懂你一直不明白的原型和原型链,如果没空看的小伙伴也没关系,我会尽可能用你们能懂的方式讲解。 本文很多地方会给新手讲解一些别的概念,懂了的小伙伴可以自行跳过,去看重要的部分。 一、 Vue.js data 的使用 我们先来回顾一
为什么在 new Vue () data 是可以作为一个 对象 进行操作的,然而在 component data 只能以 函数 的形式存在, 不能 直接将 对象 赋值给它。 因为, 对象 是引用类型, return一个新 对象 , 就相当于申明了新的变量,相互独立的。而每个 组件 data 都是内存的同一个地址,如果不用function 返回,一个数据改变了其他也改变了, 所有实例的 data 都会一样。 javas...
vue 组件 为什么 data 函数 data 是一个 函数 时,每个 组件 实例都有自己的作用域,每个实例相互独立,不会相互影响。 date 写成 对象 形式, 每个 组件 data 都是内存的同一个地址,一个数据改变了其他也改变了。 为什么new Vue 这个里面的 data 可以放一个 对象 ? 因为这个类创建的实例是不会被复用。它只会new一次,不用考虑复用,所以放一个 对象 即可。 在这里插入代码片 以下引官网原文:当一个 组件 定义 data 必须声明为返回一个初始数据 对象 函数 ,因为 组件 可能被用来创建多个实例。如果 data 仍然是一个纯粹的 对象 ,则所有的实例将共享引用同一个数据 对象 !通过提供 data 函数 ,每次创建一个新实例后,我们能够调用 data 函数 ,从而返回初始数据的一个全新副本数据 对象 。 最近来面试的很多人。我都会问这个问题“ vue ,为什么 data 是一个方法返回一个 对象 ,...
data 定义 对象 后,这就表示所有的 组件 实例共用了一份 data 数据,因此,无论在哪个 组件 实例 修改了 data ,都会影响到所有的 组件 实例。 组件 data 写成 一个 函数 ,数据以 函数 返回值形式 定义 ,这样每复用一次 组件 ,就会返回一份新的 data ,类似于给每个 组件 实例创建一个私有的数据空间,让各个 组件 实例维护各自的数据。而单纯的 写成 对象 形式,就使得所有 组件 实例共用了一份 data ,就会造成一个变了全都会变的结果。