React + Redux 应用程序:通过 Redux 操作调用 API 与直接调用 API
React + Redux App: Calling API through a Redux action Vs Calling an API directly
我正在开发 React+Redux 应用程序。我通过 Redux 操作调用 APIs 并将响应数据存储在 Redux 状态中。但有一种情况,我不必将 API 响应数据存储在 Redux 存储中。
So the question is, Is there any valid reason to call the APIs through
Redux actions or Should I call the APIs directly since I'm not storing
the response data in Redux store?
为了统一起见,你应该始终遵循 redux 方式,即使所有的响应都没有存储在 Redux 中。如果您没有使用来自 API 呼叫的响应,这也是一个问题,您为什么要拨打电话。这个参数是counter-intuitive。如果您以某种方式使用响应,最好使用 Redux 方式。建议始终存储对 Redux 调用的响应并使用它,我确定您正在调用 API 来对 UI.
执行一些操作
这取决于您要拨打的电话类型,以及与谁有关。
以下是几个案例:
这是 one-way 跟踪某事的电话吗?。您可以触发一个在 middleware
中被拾取的动作。这是发送分析的好案例。
这不必存储在 Redux 的商店中。
这是应用程序的其他部分需要此数据的调用吗?那么这是在 Redux Store
中进行更新的一个很好的用例,因此其他组件在阅读本文并使用道具来决定渲染什么等
这是一个只涉及一个组件或孤立部分的调用吗?您可以在 componentDidMount
中的组件内部进行此调用,因为这与其他人无关
或者看看 Sagas,他们观察所有被分派的动作,并以干净的方式决定如何处理它们。
接受的答案很好地解释了可以从 API 发起呼叫的场景。为了更好的用户体验,我们总是显示一些 spinner
或 busy sign
来通知用户请求正在发出但尚未完成。 API response 可能不会改变状态,但为了让用户知道某些任务正在后台进行,我们通常会更新 store
(对于全局访问)或 state
(对于组件级访问),其值类似于 isFetching
或任何有意义的值。
所以,这取决于开发者,he/she 是想显示一些 busy
标志还是默默地执行 API 请求。此外,如果他们想显示 busy
标志,他们应该决定应用程序的哪一部分应该知道 API 调用。如果仅限于组件级别,则无需在actions
中进行调用,否则,对于全局级别,是的,它应该在action
.
中
我正在开发 React+Redux 应用程序。我通过 Redux 操作调用 APIs 并将响应数据存储在 Redux 状态中。但有一种情况,我不必将 API 响应数据存储在 Redux 存储中。
So the question is, Is there any valid reason to call the APIs through Redux actions or Should I call the APIs directly since I'm not storing the response data in Redux store?
为了统一起见,你应该始终遵循 redux 方式,即使所有的响应都没有存储在 Redux 中。如果您没有使用来自 API 呼叫的响应,这也是一个问题,您为什么要拨打电话。这个参数是counter-intuitive。如果您以某种方式使用响应,最好使用 Redux 方式。建议始终存储对 Redux 调用的响应并使用它,我确定您正在调用 API 来对 UI.
执行一些操作这取决于您要拨打的电话类型,以及与谁有关。
以下是几个案例:
这是 one-way 跟踪某事的电话吗?。您可以触发一个在
middleware
中被拾取的动作。这是发送分析的好案例。 这不必存储在 Redux 的商店中。这是应用程序的其他部分需要此数据的调用吗?那么这是在 Redux
Store
中进行更新的一个很好的用例,因此其他组件在阅读本文并使用道具来决定渲染什么等这是一个只涉及一个组件或孤立部分的调用吗?您可以在
componentDidMount
中的组件内部进行此调用,因为这与其他人无关
或者看看 Sagas,他们观察所有被分派的动作,并以干净的方式决定如何处理它们。
接受的答案很好地解释了可以从 API 发起呼叫的场景。为了更好的用户体验,我们总是显示一些 spinner
或 busy sign
来通知用户请求正在发出但尚未完成。 API response 可能不会改变状态,但为了让用户知道某些任务正在后台进行,我们通常会更新 store
(对于全局访问)或 state
(对于组件级访问),其值类似于 isFetching
或任何有意义的值。
所以,这取决于开发者,he/she 是想显示一些 busy
标志还是默默地执行 API 请求。此外,如果他们想显示 busy
标志,他们应该决定应用程序的哪一部分应该知道 API 调用。如果仅限于组件级别,则无需在actions
中进行调用,否则,对于全局级别,是的,它应该在action
.