溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue3使用axios的配置方法

發(fā)布時(shí)間:2022-04-29 15:49:54 來源:億速云 閱讀:1668 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Vue3使用axios的配置方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Vue3使用axios的配置方法”吧!

一、安裝axios

npm install axios --save

二、配置axios,添加攔截器

在src目錄下新建一個(gè)request文件夾,在里面新建index.ts(或者.js)文件,編輯代碼如下:

import axios from 'axios'
// 創(chuàng)建一個(gè) axios 實(shí)例
const service = axios.create({
	baseURL: '/api', // 所有的請(qǐng)求地址前綴部分
	timeout: 60000, // 請(qǐng)求超時(shí)時(shí)間毫秒
	withCredentials: true, // 異步請(qǐng)求攜帶cookie
	headers: {
		// 設(shè)置后端需要的傳參類型
		'Content-Type': 'application/json',
		'token': 'your token',
		'X-Requested-With': 'XMLHttpRequest',
	},
})

// 添加請(qǐng)求攔截器
service.interceptors.request.use(
	function (config) {
		// 在發(fā)送請(qǐng)求之前做些什么
		return config
	},
	function (error) {
		// 對(duì)請(qǐng)求錯(cuò)誤做些什么
		console.log(error)
		return Promise.reject(error)
	}
)

// 添加響應(yīng)攔截器
service.interceptors.response.use(
	function (response) {
		console.log(response)
		// 2xx 范圍內(nèi)的狀態(tài)碼都會(huì)觸發(fā)該函數(shù)。
		// 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么
		// dataAxios 是 axios 返回?cái)?shù)據(jù)中的 data
		const dataAxios = response.data
		// 這個(gè)狀態(tài)碼是和后端約定的
		const code = dataAxios.reset
		return dataAxios
	},
	function (error) {
		// 超出 2xx 范圍的狀態(tài)碼都會(huì)觸發(fā)該函數(shù)。
		// 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么
		console.log(error)
		return Promise.reject(error)
	}
)
export default service

三、使用axios發(fā)送請(qǐng)求

在src目錄下新建一個(gè)apis文件夾,這里面放入今后所有的請(qǐng)求文件,例如新建一個(gè)請(qǐng)求用戶信息的接口user.ts,代碼如下:

// 導(dǎo)入axios實(shí)例
import httpRequest from '@/request/index'

// 定義接口的傳參
interface UserInfoParam {
	userID: string,
	userName: string
}

// 獲取用戶信息
export function apiGetUserInfo(param: UserInfoParam) {
    return httpRequest({
		url: 'your api url',
		method: 'post',
		data: param,
	})
}

接著在具體業(yè)務(wù)頁面里使用這個(gè)請(qǐng)求,例如:

<script setup lang="ts">
import { onMounted } from 'vue'
import { apiGetUserInfo } from '@/apis/user'
function getUserInfo() {
	const param = {
		userID: '10001',
		userName: 'Mike',
	}
	apiGetUserInfo(param).then((res) => {
		console.log(res)
	})
}
onMounted(() => {
	getUserInfo()
})
</script>

附:Vue3 中全局引入 axios

main.js中

import axios from 'axios'
const app = createApp(App) // 將默認(rèn)改寫為這樣
app.provide('$axios', axios)

組件內(nèi)使用axios(compositionAPI)

<script setup>
    import { inject } from 'vue'
    const $axios = inject('$axios')
    $axios.get('https://api.github.com/users').then((resp) => {    
      console.log(resp.data)
    }).catch((err) => {
      console.log(err)
    })
</script>

到此,相信大家對(duì)“Vue3使用axios的配置方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI