将 redux 客户端从 REST 转换为 GraphQL Apollo?
Posted
技术标签:
【中文标题】将 redux 客户端从 REST 转换为 GraphQL Apollo?【英文标题】:Converting redux client from REST to GraphQL Apollo? 【发布时间】:2017-03-08 19:57:21 【问题描述】:我有这个获取数据的 rest 应用程序,带有用于 redux 的 thunk + promise 中间件:
export const fetchVenues = () => (
type: 'FETCH_VENUES',
payload: axios.get('http://localhost:3000/mock/venues'),
);
来自这里的数据进入存储,组件使用从那里获取的数据。
我可以用 graphql 查询或其他东西交换“有效负载”中的其余请求吗?
让我困惑的是,Redux 说:“数据存在于存储中,只能通过操作来更改”,但 Apollo 将数据直接绑定到组件。 我已经制作了一个 GraphQL API,在 graphiql devtool 中运行良好,但是在阅读 this article 之后,我对它在客户端中的处理方式有点困惑。
【问题讨论】:
【参考方案1】:我的理解是,在内部,apollo 使用的是 redux。基本上,它使您可以将查询与组件搭配使用,并将相关数据 + 函数作为道具注入(连接)。它还通过在请求完成时更新缓存/存储来为您管理存储。
你可以看到 ApolloProvider 是一个非常强大的 redux 提供者:https://github.com/apollostack/react-apollo/blob/01425b3df5f05e7f389b36f3385433c89a39977b/src/ApolloProvider.tsx
希望对你的理解有所帮助。
【讨论】:
以上是关于将 redux 客户端从 REST 转换为 GraphQL Apollo?的主要内容,如果未能解决你的问题,请参考以下文章
如何正确地从 ReactJS + Redux 应用程序进行 REST 调用?