今天看面试题 突然看到 Vue中的data要用return返回 看到这个问题 刚开始没反应过来 因为平时写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函数生成的数据副本,避免了数据污染。