为什么Vue的data要是一个函数,而不是一个对象

72 阅读1分钟

Vue的data可以传对象也可以传函数。但是如果是对象的话。同一组件复用时每个实例都会共享一个data,而不是彼此隔离。

image.png 多次复用组件,创建vue实例时,传入的是同一个option对象,如果data是对象,由于对象是引用类型,多个实例会引用同一个对象,更新data值时,其他组件实例也会同步更新。如果是function,每次都会生成一个新的对象,各个组件实例就可以做到data数据隔离,互不影响

image.png