Blog>
Snippets

Configuring Apollo Client with React Query

Demonstrate how to set up Apollo Client for GraphQL API communication and integrate it with React Query for managing server state in a React application.
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { createReactQueryHooks } from '@trpc/react-query-hooks';

// Configure Apollo Client
const apolloClient = new ApolloClient({
  uri: 'YOUR_GRAPHQL_ENDPOINT', // Replace with your GraphQL endpoint
  cache: new InMemoryCache()
});
This piece of code initializes the Apollo Client with a GraphQL API endpoint and sets up a cache using InMemoryCache. Replace 'YOUR_GRAPHQL_ENDPOINT' with the actual endpoint of your GraphQL server.
import { QueryClient, QueryClientProvider } from 'react-query';
import { ReactQueryDevtools } from 'react-query/devtools';

// Initialize React Query
const queryClient = new QueryClient();
Here, we initialize React Query by creating a new instance of QueryClient. This will be used to configure React Query's global settings and caches.
import React from 'react';
import ReactDOM from 'react-dom';
import { ApolloProvider } from '@apollo/client';
import App from './App'; // Import your main App component

ReactDOM.render(
  <ApolloProvider client={apolloClient}>
    <QueryClientProvider client={queryClient}>
      <App />
      <ReactQueryDevtools initialIsOpen={false} />
    </QueryClientProvider>
  </ApolloProvider>,
  document.getElementById('root')
);
This code combines Apollo Client and React Query by wrapping the root App component with both ApolloProvider and QueryClientProvider. It also includes React Query Devtools for debugging.