下载axios

 二 创建axios实例

        1 在vue src目录创建一个名为axios文件夹(名字无所谓,没有特定称谓) 如果怕和axios包名字干扰,那就再改个名 叫axiosInterface

        2 在axios这个目录创建一个axiosInterface.ts 文件夹 这个文件夹初始化一个axios实例对象

        3 在axios目录下再创建一个request文件夹,在request文件夹中创建一个index.ts 文件去写接口

        4 当然还有的前端项目设计mockjs部分 那就在axios目录创建一个名为mockjs文件 去写mock相关实例

         具体如下图

        

 三 代码实现

        上面创建了三个文件 其中

                        axiosInterface.ts 实例化axios对象

                        requestAPI里面index.ts 编写接口

                        mockAPI里面index.ts编写mock请求

        1 axiosinterface.ts

                对于下面的文件做一点解析

                axios实例拦截请求响应这两块代码不是一定需要可以整体去除 这两部分主要是对请求响应拦截操作请求和响应

import axios, {AxiosInstance, AxiosRequestConfig, AxiosResponse,} from 'axios';

export const axiosInstance = axios.create({
    baseURL: "http://127.0.0.1:5173",
    timeout: 5000,
});

// axios实例拦截响应
axiosInstance.interceptors.response.use(
    (response: AxiosResponse) => {
        return response;
    },
    // 请求失败
    (error: any) => {
        return error;
    }
);

// axios实例拦截请求
axiosInstance.interceptors.request.use(
    (config: AxiosRequestConfig) => {
        return config;
    },
    (error:any) => {
        return Promise.reject(error);
    }
)

        2 requestAPI里面index.ts 文件和mockAPI中的index.ts文件书写方式一样 

想了解mockjs请一部我另一篇博客

mockjs介绍icon-default.png?t=MBR7http://t.csdn.cn/EcnsF

        书写方式参考axios官网 

   axios官网https://www.axios-http.cn/docs/intro

import {axiosInstance} from "../axiosInterface";


export const getLoginData = () =>{ return axiosInstance.get("/mockjs/loginData");}

 四 有关index.ts

      很多小伙伴很好好奇为什么我要创建一个requestAPI文件夹里面再创建一个index.ts文件, 那为什么直接创一个requestAPI.js 文件呢

      首先先说明,这两种方法写出来的代码没有任何区别

      index.ts文件在导入时候 无需导入到

                        requestAPI/index.ts

     node默认导入到 

                        requestAPI/

     node自动读取该文件夹下面的index.js文件

 这是我上面代码中的mockAPI.ts中的默认导入方式alt + enter编译器导入写法

    import {getLoginData} from "../../axios/mockAPI";

 当然在后面补齐也可以 但是编译器(我用webstorm)会黄色标注 alt+enter后发现如下提示

将ts后缀补齐甚至报错 只能以前两种方式导入

原文地址:https://blog.csdn.net/m0_59901871/article/details/128627991

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36610.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注