reactjs - 将许多道具传递给不同的子组件会影响我的应用程序的性能吗?
问题描述
我最近开始学习 React,并设法构建了一个简单的应用程序。该应用程序运行良好,但我最终将太多道具传递给子组件,这使得代码非常混乱。我一直在寻找改进代码的方法,并发现有不同的方法来处理我的应用程序的状态。我的大部分研究都指向 Redux 或 useContext 钩子。
除了让我的代码更干净之外,Redux 或 useContext 是否有助于提高我的应用程序的性能?还是在性能方面它们实际上比传递道具更糟糕?
提前致谢!
解决方案
如果你做得对,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
redux 和 useContext 的一个小缺点是您必须等待 redux 存储在初始渲染时可用,因此您必须在使用之前检查状态是否可用。(state && console.log(state)
. 但是,这仍然比传递大约一百万个道具要好。