将redux客户端从REST转换为GraphQL Apollo?

时间:2016-10-26 12:35:14

标签: javascript reactjs redux graphql react-apollo

我有这个休息的应用程序可以获得这样的数据,还有用于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 个答案:

答案 0 :(得分:3)

我的理解是,在内部,apollo使用redux。基本上它使您将查询与组件并置,并将相关数据+函数注入(连接)为props。它还通过在请求完成时更新缓存/存储来为您管理商店。

你可以看到ApolloProvider是类固醇的redux提供者:https://github.com/apollostack/react-apollo/blob/01425b3df5f05e7f389b36f3385433c89a39977b/src/ApolloProvider.tsx

我希望这有助于你的理解。