LoginSignup
92
78

More than 3 years have passed since last update.

vue-cliでaxiosを使用する(設定から使用方法まで)

Last updated at Posted at 2019-11-10

vueで非同期通信を行う際に手段はいろいろとありますが、axiosの使用が推奨されているようです。

axios を利用した API の使用-Vue.js

CDNでの導入方法はたくさんありましたが、vue-cliでの導入に手こずったため備忘録としての記事になります。

環境

  • windows10
  • @vue/cli 4.0.4
  • npm -version 6.12.0
  • node -v v10.16.3

前提

すでにnode・npm・vue-cli環境が整っており、vueプロジェクトが存在していること

手順

axiosとvue-axiosをインストール

以下コマンドを実行

npm install --save axios vue-axios

main.jsにてインポート

vue-axiosにはエントリーファイルにて設定を行うように記載されています。
エントリーファイルの意味が完全に理解できていませんが、特に設定を弄っていなければmain.jsが最初に呼ばれているはずなのでここにインポートを記載します。

main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios' //追記
import VueAxios from 'vue-axios' //追記

Vue.config.productionTip = false

Vue.use(VueAxios, axios) //追記

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

設定としては以上になります。これでaxiosを使用できるようになっているはずです。

使い方

hoge.vue
<template>
  <div id="search-ip">
    <div>
      <div>
        <input @click="getIp" type="button" value="IPを取得">
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    name: 'SearchIp',
    methods: {
      getIp() {
        this.axios.get('https://httpbin.org/get')
          .then((response) => {
            alert(response.data.origin);
          })
          .catch((e) => {
            alert(e);
          });
      }
    }
  }
</script>

IPアドレスを取得してアラート表示させる簡単なスクリプトになります。
this.axios.get()のところで非同期通信を行っています。

2021/01/25 追記

設計面ではこちらの方が優れているので合わせて確認していただけるといいと思います。
https://qiita.com/right1121/items/166f67cab861b31d3216

参考にさせていただいたサイト

vue-axios - npm
Vue.js + axios + Vue Routerで作る!シンプルなSPAの作り方

92
78
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
92
78