首页 > 解决方案 > 将许多道具传递给不同的子组件会影响我的应用程序的性能吗?

问题描述

我最近开始学习 React,并设法构建了一个简单的应用程序。该应用程序运行良好,但我最终将太多道具传递给子组件,这使得代码非常混乱。我一直在寻找改进代码的方法,并发现有不同的方法来处理我的应用程序的状态。我的大部分研究都指向 Redux 或 useContext 钩子。

除了让我的代码更干净之外,Redux 或 useContext 是否有助于提高我的应用程序的性能?还是在性能方面它们实际上比传递道具更糟糕?

提前致谢!

标签: reactjsreact-reduxreact-hooks

解决方案


如果你做得对,Redux 本身并不会真正减慢你的应用程序的速度。可能导致您的应用程序变慢的原因是重新渲染过多。这是一篇关于如何防止这种情况的文章:https ://redux.js.org/faq/performance#wont-calling-all-my-reducers-for-each-action-be-slow

您还可以在官方 Redux 文档中阅读有关性能的信息:https ://redux.js.org/faq/performance#wont-calling-all-my-reducers-for-each-action-be-slow

这个:https://redux.js.org/faq/general#:~:text=Redux%20is%20most%20useful%20when%20in%20cases%20when%3A&text=The%20app%20state%20is%20updated, is%20being%20updated%20over%20time

redux 和 useContext 的一个小缺点是您必须等待 redux 存储在初始渲染时可用,因此您必须在使用之前检查状态是否可用。(state && console.log(state). 但是,这仍然比传递大约一百万个道具要好。


推荐阅读