哪种方法更适合从API获取数据:1.获取React组件中的数据并将数据传递到redux操作1.提取redux操作内的数据
nwlls2ji1#
一般的经验法则是:
然而,根据组件的加载顺序,在加载组件之前调用api可能会对您有所帮助,在这种情况下,从redux操作中获取数据将非常有用。例如,如果你必须点击来加载一个组件,然后它将触发api调用,你可能会受益于在用户点击之前在后台加载它,以便在可能的停机时间更好地利用他们的带宽。
7fhtutme2#
如果你是死定要使用Redux,那么你显然会想通过使用一个动作来处理它。通常,如果数据仅在组件中使用,则可以在componentDidUpdate()中或在事件上执行API调用。如果数据将由一组不相关的组件使用,或者您最终要执行大量prop线程,那么您将需要使用Redux。actions/index.js
export const FETCH_DATA = 'FETCH_DATA' export const fetchData = async () => { const url = `http://your-url.com`; const request = await fetch(url); return { type: FETCH_DATA, payload: request } }
然后消费者的数据,你从你的行动在一个减速器。reducers/reducer_whatever.js
import { FETCH_DATA } from '../actions/index' export default function(state = [], action) { switch (action.type) { case FETCH_SOMETHING: return [ action.payload.data, ...state ]; } return state; }
vbkedwbf3#
1. Fetch data in react component and pass data to redux action - NO (dispatch api action in the component) 2. Fetch data inside of redux action - NO (dispatch API promise here)
触发一个动作来调用api(异步动作),并在一个reducer中处理响应。可以在组件内部触发操作。如果组件要使用此数据,请使用HOC函数connect将其连接到全局状态(redux
yftpprvb4#
您的组件主要用于分派操作和显示返回的数据。您将用分派的操作触发组件中的API调用,并在reducer中处理响应。这通常是用redux-thunk或redux-sagas之类的东西来处理异步操作,然后您可以从redux状态访问您调用的数据。我个人是redux-sagas的粉丝,您可以在这里查看Redux-Saga
4条答案
按热度按时间nwlls2ji1#
一般的经验法则是:
然而,根据组件的加载顺序,在加载组件之前调用api可能会对您有所帮助,在这种情况下,从redux操作中获取数据将非常有用。
例如,如果你必须点击来加载一个组件,然后它将触发api调用,你可能会受益于在用户点击之前在后台加载它,以便在可能的停机时间更好地利用他们的带宽。
7fhtutme2#
如果你是死定要使用Redux,那么你显然会想通过使用一个动作来处理它。
通常,如果数据仅在组件中使用,则可以在componentDidUpdate()中或在事件上执行API调用。
如果数据将由一组不相关的组件使用,或者您最终要执行大量prop线程,那么您将需要使用Redux。
actions/index.js
然后消费者的数据,你从你的行动在一个减速器。
reducers/reducer_whatever.js
vbkedwbf3#
触发一个动作来调用api(异步动作),并在一个reducer中处理响应。
可以在组件内部触发操作。
如果组件要使用此数据,请使用HOC函数connect将其连接到全局状态(redux
yftpprvb4#
您的组件主要用于分派操作和显示返回的数据。您将用分派的操作触发组件中的API调用,并在reducer中处理响应。这通常是用redux-thunk或redux-sagas之类的东西来处理异步操作,然后您可以从redux状态访问您调用的数据。我个人是redux-sagas的粉丝,您可以在这里查看
Redux-Saga