티스토리 뷰

SW 개발/JavaScript

Vue.js, AJAX 요청하기

지단로보트 2016. 8. 20. 04:48

개요

Vue.js는 최근 가장 핫한 MVVM 기반의 JavaScript 프론트엔드 라이브러리이다. Vue.js를 사용하면 jQuery보다 간결하고 직관적인 소스 코드를 작성할 수 있다. 달리 말하면 jQuery를 완전히 배제하고 프론트엔드 소스 코드를 작성할 수 있다. 하지만 AJAX 요청시 jQuery.ajax()를 포기하기에는 너무 매력적인 기능이다. vue-resourceXMLHttpRequest 오브젝트를 이용한 AJAX 요청을 도와주는 Vue.js의 플러그인 라이브러리이다. 이번 글에서는 TypeScript 환경에서 vue-resource의 사용 예를 간단히 설명하고자 한다.

HTML

<body>
    <script src="https://cdn.jsdelivr.net/vue/2.0.0-rc.2/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/vue.resource/0.9.3/vue-resource.min.js"></script>
</body>

TypeScript Definition 설치

TypeScript 환경이라면 프로젝트 루트 폴더에서 아래와 같이 실행하여 TypeScript Definition을 설치한다.

$ typings install dt~vue --global
$ typings install dt~vue-resource --global

AJAX 요청하기

function onSuccess(response: vuejs.HttpResponse) {
    // 요청 성공시 콜백 함수 작성
}

function onError(response: vuejs.HttpResponse) {
    // 요청 실패시 콜백 함수 작성
}

// AJAX GET 요청을 위한 HttpOptions 오브젝트 작성
let getOptions: vuejs.HttpOptions = {
    headers: {
        "X-Some-Header": 123,
        "X-Another-Header": "Hi"
    },
    params: {
        "pageNo": 1,
        "pageSize": 20
    }
}

// AJAX GET 요청 수행
Vue
    .http
    .get("http://somedomain.com/getSomething", getOptions)
    .then(onSuccess, onError);

// AJAX POST 요청을 위한 HttpOptions 오브젝트 작성
let postOptions: vuejs.HttpOptions = {
    headers: {
        "X-Some-Header": 123,
        "X-Another-Header": "Hi"
    },
    body: {
        firstName: "JSON",
        lastName: "Object"
    }
}

// AJAX POST 요청 수행
Vue
    .http
    .post("http://localhost:8080/babo", postOptions)
    .then(onSuccess, onError);

관련 글

댓글
댓글쓰기 폼