首页 文章

您是否应始终同时使用Redux和REST API?

提问于
浏览
0

使用React或React Native时,常见的情况是使用 redux-thunk ,这样您就可以保持后端和redux状态同步 .

我意识到大多数时候,相同的模式用于所有功能,您可以在其中调用REST API,并在响应之后更新Redux状态:

例:

// ADD ARTICLE
export const addArticle = (article) => {
    type: 'ADD_ARTICLE',
    article
}

export const startAddArticle = (articleData) => {
    return (dispatch, getState) => { 
        ...
       // call api using axios or fetch and dispatch addArticle at the end
    }
}

你应该总是使用这种模式(或Redux),如果是的话,这样做的好处是什么,而不仅仅是创建一个你可以调用REST API的类(类似于Angular中的DataService)而不是使用Redux状态,因为所有信息都已存储在数据库中并可通过后端调用访问?

1 回答

  • 2

    Redux是单向数据流,换句话说,它是应用程序的真实来源 . 它更容易与州进行互动 . 想想,你有一个模态组件,想要关闭并打开它而不从父组件传递道具,你可以使用redux轻松完成 . (也是上下文api,但我们的重点是现在Redux . 你可以谷歌获取更多关于context api的信息)

    Redux thunk是redux的中间件,可以进行异步调用 . 它会采取您的操作,在响应返回时调用下一个redux链进行异步调用 . 非常简单的工作流程如下,

    action -> middleware(redux-thunk) -> reducer -> state -> View

    你应该总是使用这种模式(或Redux)

    您不必总是使用此模式 . 对于你想跟踪加载状态的更复杂的应用程序,可以使用Redux-Saga作为示例,你也可以使用redux-thunk跟踪加载状态,但在我看来它不像Redux-Saga那样方便 . Saga使用发电机模式,可以进行多次通话 .

    或者Redux

    如果您的项目太小,则不必使用Redux,您可能需要查看Mobx . 还有一些人在使用Apollo Graphql客户端时不使用redux . 但说实话,Redux让事情变得简单 .

相关问题