React Context API 适合大规模应用吗
Is React Context API suitable for large scale applications
我计划构建一个可能包含数百个组件的大型 React 应用程序。但不确定在 Redux 和 Context 之间使用什么状态管理系统API。
Context API 内置于 React 中,不需要任何第三方库。实现简单,解决了组件不同层级共享状态的问题。
但另一方面,Redux 是行业标准,支持中间件执行异步操作。
如果我选择上下文 API 我们如何管理 API 呼叫。另外,您认为在我们可能广泛需要状态对象的大型应用程序中使用上下文是个好主意吗?
Redux 的设计优势在于操作不会实现。操作表示发生了某事(例如 SAVE_PROFILE_CLICKED)但该操作不执行任何操作(例如连接到 api、发送数据和保存响应状态)。您可以使用 context api 执行此操作,但不会强制执行分离,并且您不会拥有 redux devtools。该模式称为 event store/sourcing。您可以更改 reducer 并重播事件以查看您的更改是否有效并创建一致的状态,测试更容易,扩展更容易,逻辑隔离得更好,可能还有更多好处。
该设计还将写入状态(reducer)、副作用(thunk)和读取(选择器)分开。这种模式(writing/reading分离)被称为cqrs. Your query/selector与command/reducer分离。这使您可以更轻松地测试、隔离逻辑、减少重复实现的机会,并且可能带来更多好处。
你仍然可以在使用 Redux 时把你的项目搞得一团糟,而不是完全理解它,所以使用 Redux 并不能保证任何事情。
If I choose Context API how can we manage API calls with it.
想怎么弄就怎么弄,这个问题太笼统了不好回答。
Also do you think it is a good idea to use context for a large application where we might need state objects extensively.
如前所述; Redux 不能保证你的项目不会一团糟。它将为您提供更轻松地实现某些模式的工具。确保您了解它及其模式。大多数示例应用程序都没有证明为什么 Redux 如此强大,因为它们实现的问题(计数器、待办事项应用程序)还不够复杂,甚至不能保证使用它。我只能建议您编写您熟悉且能够理解的代码。
我计划构建一个可能包含数百个组件的大型 React 应用程序。但不确定在 Redux 和 Context 之间使用什么状态管理系统API。
Context API 内置于 React 中,不需要任何第三方库。实现简单,解决了组件不同层级共享状态的问题。
但另一方面,Redux 是行业标准,支持中间件执行异步操作。
如果我选择上下文 API 我们如何管理 API 呼叫。另外,您认为在我们可能广泛需要状态对象的大型应用程序中使用上下文是个好主意吗?
Redux 的设计优势在于操作不会实现。操作表示发生了某事(例如 SAVE_PROFILE_CLICKED)但该操作不执行任何操作(例如连接到 api、发送数据和保存响应状态)。您可以使用 context api 执行此操作,但不会强制执行分离,并且您不会拥有 redux devtools。该模式称为 event store/sourcing。您可以更改 reducer 并重播事件以查看您的更改是否有效并创建一致的状态,测试更容易,扩展更容易,逻辑隔离得更好,可能还有更多好处。
该设计还将写入状态(reducer)、副作用(thunk)和读取(选择器)分开。这种模式(writing/reading分离)被称为cqrs. Your query/selector与command/reducer分离。这使您可以更轻松地测试、隔离逻辑、减少重复实现的机会,并且可能带来更多好处。
你仍然可以在使用 Redux 时把你的项目搞得一团糟,而不是完全理解它,所以使用 Redux 并不能保证任何事情。
If I choose Context API how can we manage API calls with it.
想怎么弄就怎么弄,这个问题太笼统了不好回答。
Also do you think it is a good idea to use context for a large application where we might need state objects extensively.
如前所述; Redux 不能保证你的项目不会一团糟。它将为您提供更轻松地实现某些模式的工具。确保您了解它及其模式。大多数示例应用程序都没有证明为什么 Redux 如此强大,因为它们实现的问题(计数器、待办事项应用程序)还不够复杂,甚至不能保证使用它。我只能建议您编写您熟悉且能够理解的代码。