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

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

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看