首页 > 其他 > 详细

组件中 data 为什么是一个函数?

时间:2020-01-03 14:46:23      阅读:100      评论:0      收藏:0      [点我收藏+]

为什么组件中的 data 必须是一个函数,然后 return 一个对象,而 new Vue 实例里,data 可以直接是一个对象?

// data
data() {
return {
message: "子组件",
childName:this.name
}
}

// new Vue
new Vue({
el: ‘#app‘,
router,
template: ‘<App/>‘,
components: {App}
})

  因为组件是用来复用的,且 JS 里对象是引用关系,如果组件中 data 是一个对象,那么这样作用域没有隔离,子组件中的 data 属性值会相互影响,

如果组件中 data 选项是一个函数,那么每个实例可以维护一份被返回对象的独立的拷贝,组件实例之间的 data 属性值不会互相影响;

 而 new Vue 的实例,是不会被复用的,因此不存在引用对象的问题。

组件中 data 为什么是一个函数?

原文:https://www.cnblogs.com/lovekunkun/p/12144596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!