vue2-为啥data属性是一个函数而不是对象
1. data在vue实例和组件中的表现差异
- vue实例的时候,data既可以是一个对象也可以是一个函数
new Vue({data:{//对象name:'tom'},data(){//函数return{name:'tom'}}
})
- 而在组件中定义data,只能是函数,如果定义为对象,会报错,data option should be a function
2. 为什么组件中的data必须是函数
- 先说为什么Vue实例的data可以是对象吧,因为Vue实例对象是单例模式,不存在数据污染
- 而组件会有多个组件,如果使用对象,就会出现共用一个对象的情况,就会出现数据污染。
- 而如果使用函数,每个组件实例化的时候,都会得到一份独立的data,避免出现数据污染