Vue.js axiosをajaxライブラリとして導入する
Vuex mutationでstateの値を変更するでVuex
でmutation
を実装するまで行いました。
次はVuex
のaction
について説明したいところですが、そのためにはajax
のライブラリを導入していたほうが、わかりやすいとので、ajax
ライブラリのaxios
の導入方法を紹介します。
Vue.js
ではajax
まわりの処理は用意されておらず、外部のライブラリを各自で自由に用意するようになっています。
vue-resource
というライブラリが公式ライブラリとされていましたが、現在ではaxios
を使うように推奨されています。
私も最初はvue-resource
を使用していて、途中でaxios
に変更しましたが、ajax
処理の記載方法はほとんど同じでしたので、コードの書き換えも少なくスムーズに移行できました。
パッケージのインストール
axios
のパッケージをインストールします。
$ npm install --save-dev axios
axiosの設定
axios
の設定用にhttp.js
というファイルを作成します。ファイル名は自由に変更しても問題ありません。
http.js
import axios from 'axios';
const http = axios;
export default (Vue) => {
Vue.http = http;
Object.defineProperties(Vue.prototype, {
$http: {
get () {
return http;
}
}
});
};
エントリポイントの修正
エントリポイントのapp.js
でhttp.js
をImport
します。Vue.use(http)
でhttp
をプラグインとして使用します。
これにより、Vue.http
でaxios
のライブラリを使用するようになります。
webpack モジュールのパスを絶対パスで指定する方法で紹介した方法でImport
は絶対パスで指定しています。
app.js
import 'less/app.less';
import Vue from 'vue';
import store from 'js/store';
import http from 'js/http';
import App from 'js/components/App.vue';
Vue.use(http);
new Vue({
el: '#app',
store,
render: h => h(App)
});
これでaxios
の導入が完了しました。
動作確認はVuex actionの処理でaxiosでajaxを行うで行います。