🏷️ vue.js, axios, web, frontend,

Vue.js 에서 Axios 사용하기

Hyouk Seo Hyouk Seo Follow Sep 02, 2021 · 2 mins read
Vue.js 에서 Axios 사용하기
Share this 📤

Axios는 http통신을 하고, ajax 요청을 하는 등의 작업을 위한 라이브러리입니다. 이 외에 vue-resource 라는 라이브러리도 있지만 업데이트도 느리고 Axios보다 커뮤니티도 활성화되어있지 않아서 잘 사용하지 않는다고 합니다.


Axios 설치하기

아래의 명령어를 입력해서 Axios를 설치합니다.

npm install --save axios

그리고, Axios를 전역으로 사용할 수 있도록 main.js 안에 메소드를 추가합니다.

import Vue from "vue";
import App from "./App";
import axios from "axios";

Vue.prototype.$http = axios;

app = new Vue({
  el: "#app",
  components: { App },
  template: "<App/>",
});

Axios 사용하기

JSONPlaceholder 라는 서비스를 활용해서, 방금 설치한 Axios를 테스트 해보겠습니다. 다음과 같은 코드를 작성해주시면 됩니다.

<template lang="pug">
  div#app div(v-for="user in users" v-bind:key="users.id") h1  p
   button(@click="fetchUsers") Click me
</template>

<script>
  export default {
    name: "app",
    data() {
      return {
        users: [],
      };
    },
    methods: {
      fetchUsers: function () {
        let baseURI = "https://jsonplaceholder.typicode.com";
        this.$http.get(`${baseURI}/users`).then((result) => {
          console.log(result);
          this.users = result.data;
        });
      },
    },
  };
</script>

IE 지원하기

IE는 promise를 지원하지 않기때문에, 그에 해당하는 polyfill이 필요합니다. 아래 명령어를 입력해서 설치할 수 있습다.

npm install --save es6-promise

그 후, webpack의 config 파일에 아래 코드를 작성해서 불러옵니다.

require("es6-promise").polyfill();
Hyouk Seo

Written by ✍️ Hyouk Seo Follow

I am a detail-oriented Digital Product & User Experience Designer, Problem Solver and Frontend Developer; create design based on human-centered design.