我有一个阿波罗安装文件services/apollo.js
,我在其中导出客户端:
const client = new ApolloClient({
cache,
link: ApolloLink.from([stateLink, httpLink])
})
export default client
然后我将其导入并在其他地方正常使用:
<BrowserRouter>
<ApolloProvider client={client}>
<App />
</ApolloProvider>
</BrowserRouter>
如果我想直接使用客户端(例如,手动触发查询),可以直接将其导入文件中,而不是通过ApolloConsumer
访问它吗?
import client from 'services/apollo'
export const getSomeData = async () => {
const { data } = await client.query({ ... })
console.log(data)
}
答案 0 :(得分:1)
是的,那应该很好。
此博客文章提到将单例用于Apollo:
我将单例与唯一的apollo客户端配合使用以保持唯一的缓存 并在所有代码中使用。
https://cheesecakelabs.com/blog/apollo-graphql-client-makes-api-integration-breeze/