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 axiosaxiosの設定
axiosの設定用にhttp.jsというファイルを作成します。ファイル名は自由に変更しても問題ありません。
http.jsimport 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.jsimport '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を行うで行います。