react+?ts?vite搭建及二次封裝請求的過程解析
更新時間:2023年04月23日 09:56:05 作者:——a
這篇文章主要介紹了react+?ts?vite搭建及二次封裝請求,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
1.搭建項目
npm create vite
2.下載axios
npm install axios
打開項目創(chuàng)建基本項目結構
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); }
導出
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);
到此這篇關于react+ ts vite搭建及二次封裝請求的文章就介紹到這了,更多相關react二次封裝請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue2 Vue-cli中使用Typescript的配置詳解
Vue作為前端三大框架之一截至到目前在github上以收獲44,873顆星,足以說明其以悄然成為主流。下面這篇文章主要給大家介紹了關于Vue2 Vue-cli中使用Typescript的配置的相關資料,需要的朋友可以參考下。2017-07-07vue?this.$refs.xxx報錯undefined問題及解決
這篇文章主要介紹了vue?this.$refs.xxx報錯undefined問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue項目中axios如何捕捉http狀態(tài)碼為401錯誤問題
這篇文章主要介紹了vue項目中axios如何捕捉http狀態(tài)碼為401錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue3如何將html元素變成canvas(海報生成),進行圖片保存/截圖
這篇文章主要介紹了vue3實現(xiàn)將html元素變成canvas(海報生成),進行圖片保存/截圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05