Vue 中组件的 data 为什么是一个函数?而 new Vue 实例里,data 可以直接是一个对象?
发布于 2022-09-20 23:36:21
关注者
0
被浏览
15
5 个回答
-
因为组件可能在应用中多次被使用而被多次实例化,组件的是个函数可以确保每个实例化后的实例有独立的作用域,从而确保组件实例化后的data中的数据不会相互污染。而new Vue生成的是根应用实例,只有一个。
-
因为每个组件都是可以共享的,但是他们的data是私有的,所以每个组件都要return出去一个新的data对象,返回一个唯一的对象,不要让其他组件共用一个对象。
-
说到底就为了一件事,数据的隔离 vue的组件化能让某个组件可以被n处共用,为了防止数据之间的相互干扰,必须要找到一种作用域的机制 于是js函数每次调用都能return一个新对象的特性就这样巧妙的被利用上了,想比遍历对象清空值,永远只要一行return {}的方式简直不要太完美
-
如果组件复用,那么会通过同一个构造函数创建出多个组件实例,如果data是对象,那么组件实例都共享这个data,一个实例改变了这个data,其他实例都共享这个改变,组件间的作用域就没有隔离开来,所以必须是函数来返回一个新的对象 new Vue实例里可以是一个对象,因为new Vue不会被复用
-
因为vue实例中data属性是共用的,具有全局性,所以可以是一个对象。 而组件中data必须是函数,因为在组件实例化时执行data函数会返回一个新的对象,这个对象会被分配一个新地址作为唯一标识,这样可以保证在修改组件状态时不会污染别的组件数据。让组件可以拥有独立性与复用性
推荐阅读
-
7、vue组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象 ?
2021-09-17 关注 0 浏览158 1答案
-
组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象
2021-11-22 关注 0 浏览102 1答案
-
7、组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象
2021-10-19 关注 0 浏览140 1答案
-
8 组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象
2022-03-01 关注 0 浏览71 1答案
-
组件中的data为什么是函数,new Vue 实例里,data 可以直接是一个对象
2021-10-06 关注 0 浏览121 1答案
-
vue组件中的data为什么是一个函数?而App.vue却是一个对象?
2021-12-15 关注 0 浏览109 1答案
-
Vue 组件的 data 为什么是一个函数?
2022-09-21 关注 0 浏览10 5答案
-
vue组件中data为什么必须是一个函数
2021-10-06 关注 0 浏览117 1答案
-
vue组件中data为什么必须是一个函数?
2021-10-23 关注 0 浏览180 1答案
-
vue组件中data为什么必须是一个函数
2022-01-25 关注 0 浏览96 1答案