我有以下代码:
class Parent extends PureComponent {
userInformation = {"id" => 3,
"name" => "Sarah",
"Address" => "Palmenweg",
// Some more random values
}
render() {
// Method 1
return <ComponentWhichOnlyNeedsUserId UserId={this.userInformation.id}>
// Method 2
return <ComponentWhichOnlyNeedsUserId UserInformation={this.userInformation}>
}
}
如您所见,我得到了一个子组件,该子组件仅需要userInformation的ID,在大多数情况下,我当时将对象拆分(方法1),但是我认为这会使我的代码结构更糟,因为我项目中的某些组件会收到30多个道具。 我想重组代码以始终传递完整的对象,因为这样做会更干净。
这是我的两个问题:
1。在性能方面,使用方法2有什么不利之处吗? 2.您认为2种方法中的哪一种更好?
感谢您提前提出任何答案!
答案 0 :(得分:2)
关于将对象传递给子组件的事实,实际上是在传递对象的引用,因此从性能的角度来看,即使它是一个巨大的对象,也没有任何实际的缺点。
我个人认为,只要您遵循不更改引用类型的prop的值(应该是不变的)的准则,就不会比另一个更好。
答案 1 :(得分:0)
最好只传递需要的道具。因为,它可能会为每个单个组件创建一组值,并且额外的无用道具可能会占用一些内存。因此,最好是一个悲惨的人,只发送它想要的东西:)