Vue.js始めるおれおれアドベントカレンダー2016 – 14日目
Vueあんまり関係ない感じだけど、全く関係ないわけでもないので良しとしてください。
VueでAjax
かつては公式で vue-resource というライブラリを用意していたけれど、今は axios というライブラリが公式推奨であるらしい。
- vue-resource の引退について – vue.js
- mzabriskie/axios: Promise based HTTP client for the browser and node.js
axios
使い方も簡単そう。
IE 8+で動作。手厚い。(ちなみにVue.js v2はIE 9+。) もちろん昔の環境で動かすには最近の書き方は通じませんので、なんかまあバベるとか何とかしてください。
インストール
$ npm i -S axios
const axios = require('axios')
使い方
axios.get(url) みたいにして送信、戻り値はPromise。
res.data に応答内容が入ってるみたい。
data: {
sending: false
},
methods: {
form_submit (event) {
this.sending = true
axios.get(url, data)
.then(res => {
this.sending = false
console.log(res.status, res.statusText, res.data)
// => 200, "OK", { message: "You just sent the data!" }
})
.catch(error => {
this.sending = false
throw error
})
}
}
もっとVueに繋げる
vue-resourceはVueと密に繋がって、 this.$http.get() みたいな感じで使うそうだ。
axiosは完全に独立しているけれど、 this から参照できるようにしたい場合用に、vue-axiosというものを用意している人がいた。
これを導入すると this.axios.get() が使えるようになるとか。(試してません。)
長所は require() を省けることくらい? んーでも省かない方が思想的に良いのでは。
よくわからないこと
公式推奨って
何だろ? どこかに一覧とかあるのかな?
原文の表現は、引用符付きで “official recommendation”
。