LoginSignup
4
2

More than 3 years have passed since last update.

Nuxt.jsをVue.jsに解体するTips(Axios編)

Last updated at Posted at 2020-05-23

背景

  • Nuxt.jsで動いているSPAアプリをVue.jsに解体してほしい的な話があり、部分部分をTipsとして投稿します。
  • APIはLaravel(6.x)です。なおLaravelとNuxt.jsは同一リポジトリです(なぜ)
  • Nuxt.jsは2.9。Vueは2.6.10
  • 今回はAxios編です。

Vue.jsでthis.$axiosを使えるようにPluginを作る

resources/js/plugin/axios.js
import axios from "axios"

const AxiosPlugin = {}

AxiosPlugin.install = function (Vue) {
  Vue.prototype.$axios = axios;
}
export default AxiosPlugin;

あとはPluginを読み込むだけで、this.$axiosが使えます。

resources/js/app.js
import Vue from "vue";
import router from '~/router'
import App from '~/App.vue'
import AxiosPlugin from '~/plugin/axios';

Vue.use(AuthPlugin)

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

Nuxt.jsでのonRequestやonErrorを使いたい場合

Nuxt.js Axios ModuleのonRequestやonErrorを使いたい時があると思います。

その時はinterceptorsを使います。

resources/js/plugin/axios.js
import axios from "axios"

const AxiosPlugin = {}

AxiosPlugin.install = function (Vue) {
  Vue.prototype.$axios = axios;

  Vue.prototype.$axios.interceptors.response.use(
    function (response) {
      console.info(response)
      return response;
    },
    function (error) {
      console.error(error)
      return Promise.reject(error);
    }
}
export default AxiosPlugin;

参考

##関連リンク

4
2
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
4
2