axios是一個基于promise的HTTP客戶端,可以用于瀏覽器和node.js環(huán)境中,我們在Vue中可以通過引入axios來發(fā)送http請求
import axios from 'axios' axios.get('https://api.github.com/users') .then(response =>{ console.log(response.data) }) .catch(error =>{ console.log(error) })
當我們在Vue中使用axios時,我們一般會將其封裝成為一個Vue插件,以方便在整個應(yīng)用中使用,我們可以將封裝的axios插件放在Vue的prototype上,以便在Vue組件實例中使用
import axios from 'axios' const AxiosPlugin = { install (Vue) { Vue.prototype.$http = axios } } export default AxiosPlugin
在Vue組件中使用封裝好的axios插件的方式:
export default { created () { this.$http.get('https://api.github.com/users').then(response =>{ console.log(response.data) }).catch(error =>{ console.log(error) }) } }
除了get請求之外,我們還可以封裝其他類型的請求,比如post請求
import axios from 'axios' const AxiosPlugin = { install (Vue) { Vue.prototype.$http = { get: function (url, config = {}) { return axios.get(url, config) }, post: function (url, data = {}, config = {}) { return axios.post(url, data, config) } } } } export default AxiosPlugin export default { created () { this.$http.post('/api/user', { name: 'John', age: 25 }).then(response =>{ console.log(response.data) }).catch(error =>{ console.log(error) }) } }
使用封裝好的axios插件,我們可以方便地處理http請求及其響應(yīng),在Vue應(yīng)用中更加方便地進行數(shù)據(jù)交互。