[javascript] Vue.js에서의 GraphQL 쿼리 작성 방법

GraphQL은 데이터를 효과적으로 가져오고 조작하기 위한 쿼리 언어입니다. Vue.js와 함께 사용하면 더욱 강력한 웹 애플리케이션을 개발할 수 있습니다. 이번 블로그 포스트에서는 Vue.js에서 GraphQL 쿼리를 작성하는 방법에 대해 알아보겠습니다.

Vue.js와 GraphQL 연결하기

Vue.js 애플리케이션과 GraphQL 서버를 연결하기 위해 우선 Apollo Client를 설치해야 합니다. Apollo Client는 Vue.js와 GraphQL의 통신을 용이하게 도와줍니다.

// 설치 방법
npm install apollo-boost vue-apollo graphql-tag graphql --save

Vue.js 애플리케이션의 main.js 파일에서 Apollo Client를 초기화합니다.

import Vue from 'vue';
import ApolloClient from 'apollo-boost';
import VueApollo from 'vue-apollo';

const apolloClient = new ApolloClient({
  uri: 'https://example.com/graphql', // GraphQL 서버의 엔드포인트 URL
});

Vue.use(VueApollo);

const apolloProvider = new VueApollo({
  defaultClient: apolloClient,
});

new Vue({
  apolloProvider,
  render: (h) => h(App),
}).$mount('#app');

이제 Vue.js 애플리케이션과 GraphQL 서버가 연결되었습니다.

GraphQL 쿼리 작성하기

Vue.js 컴포넌트에서 GraphQL 쿼리를 작성하려면 .gql 확장자를 가진 GraphQL 쿼리 파일을 생성하거나, 컴포넌트 내부에서 문자열로 쿼리를 작성할 수 있습니다.

GraphQL 쿼리 파일 생성하기

Vue.js 컴포넌트와 같은 경로에 .gql 확장자를 가진 GraphQL 쿼리 파일을 생성합니다. 예를 들어, UserQuery.gql이라는 파일을 생성하겠습니다.

# UserQuery.gql

query GetUser($id: ID!) {
  user(id: $id) {
    id
    name
    email
  }
}

컴포넌트에서 GraphQL 쿼리 사용하기

Vue.js 컴포넌트에서 .gql 파일을 import하여 사용합니다.

import UserQuery from '@/queries/UserQuery.gql';

export default {
  apollo: {
    user: {
      query: UserQuery,
      variables() {
        return {
          id: '1',
        };
      },
    },
  },
  // ...
}

이제 user 데이터를 Vue.js 컴포넌트 내부에서 사용할 수 있습니다.

export default {
  // ...
  mounted() {
    console.log(this.user); // 쿼리 결과 출력
  },
}

마무리

Vue.js와 GraphQL을 함께 사용하면 간편한 데이터 통신을 구현할 수 있습니다. 이 글을 통해 Vue.js에서 GraphQL 쿼리를 작성하는 방법에 대해 배웠습니다. 이제 Vue.js 애플리케이션에서 GraphQL을 활용하여 효율적인 데이터 통신을 구현해보세요!

참고 문서: