我很好奇上面提到的工具中哪一个可以更好的解决应用程序性能问题。哪一个可以减少重新渲染?如果任何上下文状态发生更改,ContextAPI似乎会导致重新呈现整个组件树。另外,Context API + React钩子又如何呢?(useReducer)我觉得redux会表现得更好,也许有人有具体的数字谁是赢家在这一类?
kwvwclae1#
流行的观点是Redux适合大型项目,而Context API适合小型项目。这两个工具都是针对各自特定领域的优秀工具,Redux只是为了将数据从父级传递到子级而大材小用,而Context API在这种情况下确实大放异彩。如果您只是使用ContextAPI来防止将道具向下传递给深度嵌套的组件,则可以使用它来代替Redux,因为它是专门为此用例设计的。但是,如果您已经停止使用Redux(集中应用程序的状态,处理组件外部的逻辑,可预测的状态容器,使用Redux DevTools跟踪应用程序状态何时、何地、为何以及如何更改,使用Redux Form、Redux Saga 、Redux Undo、Redux Persists、Redux Logger等插件),那么您没有理由停止使用Redux。
ndasle7k2#
如果你的应用程序很大并且有复杂的状态管理,那么redux是一个更好的选择,因为它可以让你的应用程序更方便地管理状态,将逻辑与UI分离,更好的代码组织,容易调试等。但是,如果您的应用程序是一个小型或中型应用程序,请选择上下文API。因为它需要最少的设置,并与React完美搭配。
2条答案
按热度按时间kwvwclae1#
流行的观点是Redux适合大型项目,而Context API适合小型项目。
这两个工具都是针对各自特定领域的优秀工具,Redux只是为了将数据从父级传递到子级而大材小用,而Context API在这种情况下确实大放异彩。
如果您只是使用ContextAPI来防止将道具向下传递给深度嵌套的组件,则可以使用它来代替Redux,因为它是专门为此用例设计的。
但是,如果您已经停止使用Redux(集中应用程序的状态,处理组件外部的逻辑,可预测的状态容器,使用Redux DevTools跟踪应用程序状态何时、何地、为何以及如何更改,使用Redux Form、Redux Saga 、Redux Undo、Redux Persists、Redux Logger等插件),那么您没有理由停止使用Redux。
ndasle7k2#
如果你的应用程序很大并且有复杂的状态管理,那么redux是一个更好的选择,因为它可以让你的应用程序更方便地管理状态,将逻辑与UI分离,更好的代码组织,容易调试等。
但是,如果您的应用程序是一个小型或中型应用程序,请选择上下文API。因为它需要最少的设置,并与React完美搭配。