Reactjs 如何将Redux应用程序转换为GraphQL/Apollo?

Reactjs 如何将Redux应用程序转换为GraphQL/Apollo?,reactjs,redux,graphql,apollo,Reactjs,Redux,Graphql,Apollo,我正在重构一个使用redux的express+react应用程序,我想切换到graphql(apollo),但我有一些事情还不太清楚 因此,一般的流程是GET请求获取数据(一个对象数组),然后将数据存储在redux存储中,并使用分页的选择器将其显示为列表。然后,用户可以编辑条目(条目在redux存储中修改),然后他可以“发布”从redux存储中获取数据并调用POST端点 我将如何在graphql中建模?我是否使用graphql查询分页(使用偏移量/限制,以DB为单位)? 编辑完成后,如何修改内存

我正在重构一个使用redux的express+react应用程序,我想切换到graphql(apollo),但我有一些事情还不太清楚

因此,一般的流程是GET请求获取数据(一个对象数组),然后将数据存储在redux存储中,并使用分页的选择器将其显示为列表。然后,用户可以编辑条目(条目在redux存储中修改),然后他可以“发布”从redux存储中获取数据并调用POST端点

我将如何在graphql中建模?我是否使用graphql查询分页(使用偏移量/限制,以DB为单位)?
编辑完成后,如何修改内存中的条目并同时发布所有条目?

在Apollo中,这非常简单:

  • 获取的数据存储在规范化缓存中(列表和项目分开)
  • 组件可以使用
    useQuery
    hook获取数据(使用缓存客户端)
  • 渲染具有编辑功能的项目
  • onChange
    /
    onSave
    事件调用变异函数(从
    usemotation
    hook返回),将一个或多个记录数据(要更新)作为变量传递
  • 发送到API的数据产生响应(变异解析器),您可以使用(在
    onCompleted
    handler中)更新本地缓存(
    writeQuery
    )或调用refetch查询(通过从
    useQuery
    调用fn/handler),这两种方法都将强制使用更新的数据重新提交组件
是的,可以使用查询变量、获取更多信息等进行分页