React/Redux 应用中网络请求的定位逻辑
Positioning logic for a network request in a React/Redux app
我有一个在页面上呈现项目的 React 组件。这些项目是从网络中检索的。
应在加载组件时检索和呈现这些项目。
组件加载后也会有更新项目的机制。
我的第一个想法是将网络请求放在 componentDidMount
函数中。
这样做会破坏与 redux 和单向数据相关的任何最佳实践吗flow/immutability?
相反,我应该向商店发送一个操作并依靠 redux 中间件来执行网络请求(然后最终会更改商店并导致组件重新呈现)吗?
如果您的数据是本地的,则在 componentWillMount 中执行,如果您的数据是全局的,则通过调用操作来执行。
所以基本上在 componentDidMount
和 componentWillMount
中进行异步调用是相同的。最有可能的是,componentWillMount
中的异步调用不会在 componentDidMount
被触发之前 return。但是如果你在 componentDidMount
.
中进行相同的调用,它会比 return 早
在 componentDidMount
中进行异步调用清楚地表明组件将首先在没有数据的情况下呈现,然后在数据到达时重新呈现,这在 componentWillMount
.
中是隐含的
我有一个在页面上呈现项目的 React 组件。这些项目是从网络中检索的。
应在加载组件时检索和呈现这些项目。
组件加载后也会有更新项目的机制。
我的第一个想法是将网络请求放在 componentDidMount
函数中。
这样做会破坏与 redux 和单向数据相关的任何最佳实践吗flow/immutability?
相反,我应该向商店发送一个操作并依靠 redux 中间件来执行网络请求(然后最终会更改商店并导致组件重新呈现)吗?
如果您的数据是本地的,则在 componentWillMount 中执行,如果您的数据是全局的,则通过调用操作来执行。
所以基本上在 componentDidMount
和 componentWillMount
中进行异步调用是相同的。最有可能的是,componentWillMount
中的异步调用不会在 componentDidMount
被触发之前 return。但是如果你在 componentDidMount
.
在 componentDidMount
中进行异步调用清楚地表明组件将首先在没有数据的情况下呈现,然后在数据到达时重新呈现,这在 componentWillMount
.