当将 props 传递给 React 组件时,我目前正在这样做:

<MyComponent
    {...this.props}
    foo=foo
    bar=bar
/>
foobar 是我知道 MyComponent 需要的 Prop 。但是,在大多数情况下,MyComponent 中也包含需要来自更高组件的 props 的组件,因此我使用 {...this.props} 运算符将它们向前传递。我应该这样做,还是应该准确地列出 MyComponent 的子组件需要的 Prop ?

最佳答案

你应该使用像 Flux、Redux 或 Mobx 这样的状态管理器(我认为,根本没有使用过 Mobx)来解决在不需要它们的中间组件的情况下通过多个级别传递 Prop 的问题。

您应该只将完全需要的 Prop 传递给 child 。我在 github 上阅读了一篇关于这个的好文章,但找不到。

当您的应用程序增长时很难管理,这实际上是对 Es6 扩展语法运算符的滥用(即,它可以在短期内轻松传递 Prop ,但从长远来看,您仍然有问题,您只是在掩盖它)。不确定它是否会减慢应用程序的速度,但如果 prop 发生了不必要的更改,它将再次重新渲染所有子组件。

例如,在使用 Redux 时,您可以将组件“连接”到全局状态(想想数据库)并将它们作为 Prop 传递给您想要的任何组件,并绕过必须将 Prop 转发给子组件的组件。

一开始很难学习,但 1000% 值得。

关于reactjs - 使用 React props spread operator 会显着减慢我的应用程序吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41192410/

10-13 00:13