поделитесь методом использования axios глобально стандартным для nuxtjs? - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу использовать его для всех компонентов и страниц, и мой конфиг присутствует:

~ / plugins / axios

import axios from 'axios'

export default axios.create({
  baseURL: 'http://127.0.0.1:3001/'
})

, но при этом я должен import axios from '~/plugins/axios' в компонентах истраницы, которые я хочу использовать для чего-то подобного:

this.$axios.post('url',data).then(res=>{
// do something in here 
}).catch({
// do something in here 
})

и не нужно импортировать больше axios

1 Ответ

0 голосов
/ 08 декабря 2018

Я рекомендую вам использовать официальный «Axios Module» для Nuxt.js: https://github.com/nuxt-community/axios-module

npm install @nuxtjs/axios

Сначала вы можете установить baseURL в nuxt.config.js или в переменную env(см. https://axios.nuxtjs.org/options):

modules: [
  '@nuxtjs/axios'
],
axios: {
  baseURL: 'http://127.0.0.1:3001/' // or, Environment variable API_URL_BROWSER can be used to override browserBaseURL.
}

Затем в <page> .vue, больше нет импорта, axios вводится в app var (см. https://axios.nuxtjs.org/usage):

<script>
export default {
 asyncData ({ app }) {
   app.$axios.$get(`/api/users`).then(
      // do something in here 
    );
    //...
  }
}
</script>

Наконец,вы можете обрабатывать ошибки глобально с помощью специального плагина (см. https://axios.nuxtjs.org/extend)

$axios.onError(error => {
  // do something in here 
})
...