셋팅해본적이 없어서 셋팅해본 react-apollo. 물론 간단한 웹앱을 만들때 하는 설정셋팅이고 로그인, apollo-client, initialCacheState 등을 사용하려면 디렉토리구조를 세분화하는것이 좋다.
npm install apollo-boost @apollo/react-hooks graphql
npm i graphql-tag
gql 템플릿 리터럴 태그로 감싸 쿼리문을 사용할 수 있다.
npm i apollo-link-http apollo-cache-inmemory apollo-client
그리고 네트워크 통신에 사용할 apollo-link-http 와 로컬 메모리에 데이터를 캐시하는데 사용할 apollo-cache-inmemory 및 apollo-client를 설치한다.
const client = new ApolloClient({
uri: "서버주소",
cache: new InMemoryCache()
});
react app을 래핑하고, context에 배치하여 어느곳에서나 사용할 수 있게한다.
const App = () => (
<ApolloProvider client={client}>
<div>
<h2>My first Apollo app 🚀</h2>
</div>
</ApolloProvider>
);
ApolloProvider가 연결되면, useQuery로 data를 가져올 수 있다.
const { loading, data } = useQuery(Queries.GET_DATA);