본문 바로가기

FrontEnd

Vue.js 뷰 HTTP 통신

728x90

HTTP(HyperText Transfer Protocol) : 브라우저와 서버 간에 데이터를 주고받는 통신 프로토콜

프로토콜 : 컴퓨터나 단말기 간에 통신하기 위해 상호간에 정의한 규칙

 

https://joshua1988.github.io/web-development/http-part1/

 

 

제이쿼리(jQuery)의 ajax : 서버에서 받아온 데이터를 표시할 때 화면 전체를 갱신하지 않고도 화면의 일부분만 변경할 수 있게 하는 자바스크립트 기법. 웹 앱 HTTP 통신의 대표적인 사례

 

엑시오스(Axios) : 가장 많이 사용되는 HTTP 통신 라이브러리

 

설치하는 법

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

 

API 유형 처리결과
axios.get('URL주소').then().catch() 해당 URL 주소에 대해 HTTP GET 요청을 보냄. 서버에서 보낸 데이터를 정상적으로 받아오면 then() 안에 정의한 로직이 실행되고, 오류가 발생하면 catch() 안에 정의한 로직이 실행됨
axios.post('URL주소').then().catch() 해당 URL 주소에 대해 HTTP POST 요청을 보냄. then()과 catch()는 동일
axios({옵션 속성}) HTTP요청에 대한 자세한 속성들을 직접 정의하여 보낼 수 있음. 데이터 요청을 보낼 URL, HTTP 요청방식, 보내는 데이터 유형, 기타 등등

 

<!DOCTYPE html>
<html lang=ko dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Vue Router Sample</title>
  </head>
  <body>
    <div id="app">
      <button v-on:click="getData">프레임워크 목록 가져오기</button>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.2/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <!--엑시오스 라이브러리 로딩-->

    <script>
      new Vue({
        el: '#app',
        methods: {
          getData: function(){
            //엑시오스 GET 요청 API
            axios.get('https://raw.githubusercontent.com/joshua1988/doit-vuejs/master/data/demo.json')
            .then(function(response){
              console.log(response);
            });
          }
        }
      });
    </script>
  </body>
</html>

 

response 객체를 확인해보면 data 속성이 일반 문자열 형식이 아니라 객체 형태이기 때문에 별도로 JSON.parse()을 사용하여 객체로 변환할 필요가 없다

728x90

'FrontEnd' 카테고리의 다른 글

뷰 템플릿  (0) 2022.08.05
Vue.js 뷰 라우터 | 네스티드 뷰 | 네임드 뷰  (0) 2022.07.28
Vuejs 뷰 컴포넌트 통신  (0) 2022.07.27
Vue.js 컴포넌트  (0) 2022.07.25
Vue.js 기초 | 라이프사이클  (0) 2022.07.25