天天看點

在Vue原型檔案中挂載Axios--便于維護Vue原型檔案全局挂載axios自定義屬性Vue原型檔案全局配置axios請求根路徑

如果我們在進行Vue項目開發的時候,有倆個或者更多的元件中使用到了ajax請求

那麼我們每一個元件都需要注冊導入axios子產品并發起很多次的請求

目錄

Vue原型檔案全局挂載axios自定義屬性

Vue原型檔案全局配置axios請求根路徑

就像這樣:

// 元件1
import axios from 'axios'
export default {
  methods: {
    async getInfo () {
      const { data: res } = await axios.get('http://www.xxxxxx/api/get')
      console.log(res)
    }
  }
}
           
// 元件2
import axios from 'axios'
export default {
  methods: {
    async postInfo () {
      const { data: res } = await axios.post(
        'http://www.xxxxxx/api/post',
        { username: 'zs', age: 18 })
      console.log(res)
    }
  }
}
           

非常的繁瑣,我們有沒有可能讓他簡便一些呢?

當然有-----

Vue原型檔案全局挂載axios自定義屬性

我們可以在main.jsVue原型檔案中挂載一個自定義屬性,全局可用axios子產品:

import axios from 'axios'
// 挂載一個自定義屬性$http
Vue.prototype.$http = axios
           

這樣我們在任何一個元件中都是可以使用 Vue執行個體.自定義屬性 來發起請求了

export default {
  methods: {
    async postInfo () {
      const { data: res } = await this.$http.post(
        'http://www.xxxxxx/api/post',
        { username: 'zs', age: 18 })
      console.log(res)
    }
  }
}
           

Vue原型檔案全局配置axios請求根路徑

還能更加的簡便一些--

比如可以在全局配置axios請求的根路徑--

這樣可以優化代碼并且有利于日後的項目維護

import axios from 'axios'
// 挂載一個自定義屬性$http
Vue.prototype.$http = axios
// 全局配置axios請求根路徑(axios.預設配置.請求根路徑)
axios.defaults.baseURL = 'http://www.xxxxxx'
           

接下來我們使用的時候就可以隻填寫請求路徑字尾:

export default {
  methods: {
    async getInfo () {
      const { data: res } = await this.$http.get('/api/get')
      console.log(res)
    }
  }
}
           

但是這樣是無法實作API接口的複用的 

繼續閱讀