最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react+?ts?vite搭建及二次封裝請求的過程解析

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

1.搭建項(xiàng)目

npm create vite

在這里插入圖片描述

2.下載axios

npm install axios 

打開項(xiàng)目創(chuàng)建基本項(xià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) => {
  //進(jìn)行特殊請求操作
  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) => {
  //進(jìn)行特殊請求操作
  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)文章

  • vue.js框架實(shí)現(xiàn)表單排序和分頁效果

    vue.js框架實(shí)現(xiàn)表單排序和分頁效果

    這篇文章主要為大家詳細(xì)介紹了vue.js框架實(shí)現(xiàn)表單排序和分頁效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • vue項(xiàng)目中使用bpmn-自定義platter的示例代碼

    vue項(xiàng)目中使用bpmn-自定義platter的示例代碼

    這篇文章主要介紹了vue項(xiàng)目中使用bpmn-自定義platter的實(shí)例代碼,本文通過代碼截圖相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Vue2.x響應(yīng)式簡單講解及示例

    Vue2.x響應(yīng)式簡單講解及示例

    這篇文章主要介紹了Vue2.x響應(yīng)式及簡單的示例,應(yīng)用了簡單的源代碼進(jìn)行講解,感興趣的小伙伴可以參考一下,希望可以幫助到你
    2021-08-08
  • Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景的示例詳解

    Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-11-11
  • vue 自定義icon圖標(biāo)的步驟

    vue 自定義icon圖標(biāo)的步驟

    這篇文章主要介紹了vue 自定義icon的圖標(biāo)的步驟,文中大概給大家分為兩步驟,通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • 詳解Vue的ref特性的使用

    詳解Vue的ref特性的使用

    這篇文章主要介紹了詳解Vue的ref特性的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 在Vue3中使用provide和inject進(jìn)行依賴注入的代碼詳解

    在Vue3中使用provide和inject進(jìn)行依賴注入的代碼詳解

    在現(xiàn)代前端開發(fā)中,Vue.js已經(jīng)成為了非常流行的框架之一,它提供了極大的靈活性和可維護(hù)性,今天我們要探討的是Vue?3中的provide和inject功能,這是一種用于在組件樹中進(jìn)行依賴注入的方法,需要的朋友可以參考下
    2024-06-06
  • 使用canvas實(shí)現(xiàn)一個(gè)vue彈幕組件功能

    使用canvas實(shí)現(xiàn)一個(gè)vue彈幕組件功能

    這篇文章主要介紹了使用canvas實(shí)現(xiàn)一個(gè)vue彈幕組件功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐

    Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐

    這篇文章主要介紹了Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Vue 數(shù)據(jù)更新了但頁面沒有更新的 7 種情況匯總及延伸總結(jié)

    詳解Vue 數(shù)據(jù)更新了但頁面沒有更新的 7 種情況匯總及延伸總結(jié)

    這篇文章主要介紹了詳解Vue 數(shù)據(jù)更新了但頁面沒有更新的 7 種情況匯總及延伸總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論

泾源县| 正宁县| 广宗县| 原平市| 永德县| 蓝山县| 拜城县| 商丘市| 仲巴县| 昌邑市| 中卫市| 汽车| 宁化县| 宁国市| 郧西县| 龙陵县| 石柱| 军事| 盘锦市| 东台市| 成都市| 紫云| 彩票| 屯留县| 东城区| 奇台县| 英超| 元朗区| 于田县| 谢通门县| 新津县| 东兴市| 惠州市| 华蓥市| 长沙市| 古交市| 宁陕县| 台湾省| 宜宾市| 栾川县| 汾西县|