(在Vue中)如何在不影响主组件的情况下更新子组件中具有引用类型的道具?
(in Vue) How to update props has reference types in child component without affecting main component?
我正在尝试在主组件下创建子组件,并将道具从主组件发送到子组件。如果用户对子组件进行更改,我希望有可能不会影响主组件。我的意思是单向绑定。
查看完整存储库https://github.com/saidakyuz/test-vue-props-wih-cypress
作为解决方案 SubComp3 returns 引用类型的单个元素,但我希望有可能 return 完整的数组或对象以备不时之需。
谁能帮我找出解决办法?
我找到了一种在没有引用连接的情况下复制引用对象的好方法。这样主组件就不会受到子组件变化的影响。
我所做的更改(浅);
来自:
var cObjectString=this.pObjectString
致:
var cObjectString={...this.pObjectString}
但是 shallow 不适用于数组对象。为此,我使用了如下深度克隆;
来自:
var cObjectArray =this.pObjectArray
致:
var cObjectArray = cloneDeep(this.pObjectArray)
在本文中,您可以获得有关 shallow or deep clone reference types
的更多信息
我正在尝试在主组件下创建子组件,并将道具从主组件发送到子组件。如果用户对子组件进行更改,我希望有可能不会影响主组件。我的意思是单向绑定。
查看完整存储库https://github.com/saidakyuz/test-vue-props-wih-cypress
作为解决方案 SubComp3 returns 引用类型的单个元素,但我希望有可能 return 完整的数组或对象以备不时之需。
谁能帮我找出解决办法?
我找到了一种在没有引用连接的情况下复制引用对象的好方法。这样主组件就不会受到子组件变化的影响。
我所做的更改(浅);
来自:
var cObjectString=this.pObjectString
致:
var cObjectString={...this.pObjectString}
但是 shallow 不适用于数组对象。为此,我使用了如下深度克隆;
来自:
var cObjectArray =this.pObjectArray
致:
var cObjectArray = cloneDeep(this.pObjectArray)
在本文中,您可以获得有关 shallow or deep clone reference types
的更多信息