프론트엔드/GraphQL

[GraphQL] 2. Apollo client 생성

zzocco94 2023. 2. 15. 10:01

노마드 코더의 [GraphQL로 영화 웹 앱 만들기] 
강의를 보고 정리한 글입니다.

 

Client 생성

- url는 GraphQL 서버 주소를 기입하면 된다.

 

// src/apollo.ts

import { ApolloClient, InMemoryCache } from "@apollo/client";

const client = new ApolloClient({
  uri: "http://localhost:4000/",
  cache: new InMemoryCache(),
});

export default client;

 

쿼리 작성

// src/apollo.ts

import { ApolloClient, gql, InMemoryCache } from "@apollo/client";

client
  .query({
    query: gql` 
        {
            allMovies: {
                title
            }
        }
    `,
  })
  .then((data) => console.log(data));

 

작동 확인

- import만 해도 작동 여부를 확인할 수 있다.

 

// index.tsx

import client from './apollo.ts';

const root = ReactDOM.createRoot(
  document.getElementById("root") as HTMLElement
);
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

 

Apollo Client와 React 컴포넌트 연결 

// index.tsx

import { ApolloProvider } from "@apollo/client";
import client from "./apollo";

<ApolloProvider client={client}>
    <App />
</ApolloProvider>

 

Client 접근

- ApolloProvider에 의해 전역에서 client 접근이 가능하다.

 

import { useApolloClient } from '@apollo/client';

function Movies() {
    const client = useApolloClient();
    return <div>This is a list of movies</div>;
}