vue中data为什么要return
首先先看一下下面的代码
var vm = new Vue({ el: '#example', data: { message: 'Hello' } }); 这种写法data对象是引用类型
//在vue组件中这样写 data() { return { message: 'Hello' } } //函数写法,每次返回新对象
- 1)在简单的Vue实例中,因为你app对象不存在复用,不会出现数据污染。
- 2)然而在组件中, 使用return包裹后数据中变量只在当前组件中生效,因为组件是可以被复用的,这样不会影响其他组件,所以为了不让多处的组件共享同一个data对象,只能返回函数 ,我们只是调用 了data函数生成的数据副本,避免了数据污染。