我有一个父组件,其中有一个变量需要传递给所有子组件。像这样:
<div v-for="item in items">
<Child :packet="{item: item, globalvars: globalvars }" />
</div>
我正在将这个大的globalvars
对象传递给代码中Child
组件的所有实例。这样做是否每次将globalvars
传递到Child
实例时在内存中复制它们?只是想知道Vue如何处理这种情况。
答案 0 :(得分:1)
参数是通过引用传递的,因此不会重复数据。但是,如果任何子级更改了该对象的状态,则由于所有组件共享同一对象,因此此更改还将影响同级组件。我认为这是预期的吗?
但是,我个人发现globalvars
有点模糊,并且根据其用途有很多更好的设计-可能是全局插件,vuex实例,甚至是简单的提供/注入?