vue组件中data必须通过function/return声明
vue组件中声明的data成员,值需要是一个function,内部通过return返回{}对象供使用,这个特性必须遵守。
vue组件的data为什么必须是一个function
:
- 组件根据业务需要,可以被使用多次,function会使得每次组件使用的时候都亲自执行,并给当前应用分配一个独立的数据对象,这样多个组件的data数据是独立的,互相没有关联、牵扯,互相不会覆盖。
- 如果直接通过{}对象 给data赋值,多次使用组件会造成组件之间的data都是共享的,就是一份数据,一个组件修改data后,其他组件都受到影响,这与业务逻辑是相违背的。
组件与Vue实例的异同
:
- 组件中的 data 必须是一个 function 并 return 一个 字面量对象。
(Vue 实例的 data 可以是字面量对象,也可以是 function/return形式,推荐使用字面量对象)。 - 组件中直接通过 template 属性来指定组件的html结构。
Vue 实例中,一般通过 el 属性来指定渲染的容器,当然也可以使用template。 - 组件和Vue实例拥有类似的成员,都有自己的生命周期函数,过滤器,监听器,计算属性,methods、data等成员。