为什么Vue 组件中的 data 不是对象而是函数?

为什么在 new Vue() 中,data 是可以作为一个对象进行操作的,然而在 component 中,data 只能以函数的形式存在,不能直接将对象赋值给它。
因为,对象是引用类型, 组件可能会被多个实例同时引用。如果data值为对象,将导致多个实例共享一个对象,其中一个组件改变data属性值,其他实例也会受到影响,一个数据改变了其他也改变了, 所有实例的data 都会一样。
javascipt只有函数构成作用域(注意理解作用域,只有函数的{}构成作用域,对象的{}以及 if(){}都不构成作用域),data是一个函数时,每个组件实例都有自己的作用域,return一个新对象, 就相当于申明了新的变量,相互独立,
每个实例相互独立,不会相互影响。

发布了4 篇原创文章 · 获赞 0 · 访问量 11

猜你喜欢

转载自blog.csdn.net/weixin_45259626/article/details/105563306
今日推荐