缩短传递给道具的元素在反应中是否被认为是一种好习惯?

时间:2018-11-25 14:50:54

标签: javascript reactjs

我有以下代码:

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种方法中的哪一种更好?

感谢您提前提出任何答案!

2 个答案:

答案 0 :(得分:2)

  1. 关于将对象传递给子组件的事实,实际上是在传递对象的引用,因此从性能的角度来看,即使它是一个巨大的对象,也没有任何实际的缺点。

  2. 我个人认为,只要您遵循不更改引用类型的prop的值(应该是不变的)的准则,就不会比另一个更好。

答案 1 :(得分:0)

最好只传递需要的道具。因为,它可能会为每个单个组件创建一组值,并且额外的无用道具可能会占用一些内存。因此,最好是一个悲惨的人,只发送它想要的东西:)