react+?ts?vite搭建及二次封裝請求的過程解析
更新時間:2023年04月23日 09:56:05 作者:——a
這篇文章主要介紹了react+?ts?vite搭建及二次封裝請求,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1.搭建項目
npm create vite

2.下載axios
npm install axios
打開項目創(chuàng)建基本項目結(jié)構(gòu)

3.創(chuàng)建http文件夾下index.ts
引入axios
import axios, {
AxiosResponse,
AxiosInstance,
InternalAxiosRequestConfig,
} from "axios";重新創(chuàng)建axios
const instance: AxiosInstance = axios.create({
baseURL:
// vite 環(huán)境變量判斷
import.meta.env.MODE === "development"
? "/api"
: import.meta.env.VITE_APP_BASE_URL,
timeout: 10000,
});創(chuàng)建攔截器
instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
//進行特殊請求操作
return config;
});
instance.interceptors.response.use((response: AxiosResponse) => {
return response.data;
});封裝請求方法
export function get<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.get(url, { params, ...config });
}
export function post<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.post(url, params, config);
}
export function put<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.put(url, params, config);
}導(dǎo)出
export default instance;
完整代碼
// http/index.ts
import axios, {
AxiosResponse,
AxiosInstance,
InternalAxiosRequestConfig,
} from "axios";
const instance: AxiosInstance = axios.create({
baseURL:
import.meta.env.MODE === "development"
? "/api"
: import.meta.env.VITE_APP_BASE_URL,
timeout: 10000,
});
instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
//進行特殊請求操作
return config;
});
instance.interceptors.response.use((response: AxiosResponse) => {
return response.data;
});
export function get<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.get(url, { params, ...config });
}
export function post<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.post(url, params, config);
}
export function put<T>(
url: string,
params?: CustomObject,
config?: CustomObject
): Promise<ResultData> {
return instance.put(url, params, config);
}
export default instance;
使用
// api.ts
import { get, post } from "../http/index";
// 文章列表
export const blogList = (data: CustomObject): Promise<ResultData> =>
get("/api/posts", data);到此這篇關(guān)于react+ ts vite搭建及二次封裝請求的文章就介紹到這了,更多相關(guān)react二次封裝請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue2 Vue-cli中使用Typescript的配置詳解
Vue作為前端三大框架之一截至到目前在github上以收獲44,873顆星,足以說明其以悄然成為主流。下面這篇文章主要給大家介紹了關(guān)于Vue2 Vue-cli中使用Typescript的配置的相關(guān)資料,需要的朋友可以參考下。2017-07-07
vue?this.$refs.xxx報錯undefined問題及解決
這篇文章主要介紹了vue?this.$refs.xxx報錯undefined問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue項目中axios如何捕捉http狀態(tài)碼為401錯誤問題
這篇文章主要介紹了vue項目中axios如何捕捉http狀態(tài)碼為401錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue3如何將html元素變成canvas(海報生成),進行圖片保存/截圖
這篇文章主要介紹了vue3實現(xiàn)將html元素變成canvas(海報生成),進行圖片保存/截圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05

