精华内容
下载资源
问答
  • axios二次封装
    2022-06-02 09:45:38

    1、 前期配置

    1. 下载 axios
    npm i axios --save
    
    1. 然后在main.js引入
    import axios from "axios";
    

    2、配置 config 文件中的代理地址

    在项目config目录下的修改 index.js文件,这里是主要书写配置多个后台接口。关于代理可能出现的问题,可以查看我的另一篇文档 Vue-Cli 代理本地 proxytable 报错解析

    • Vue-cli2 旧版本的代理配置 —— config/index.js
    dev: {
        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        // 后端请求地址代理,配置后testIp再之后的页面调用时就直接指代 http://197.82.15.15:8088
        proxyTable: {
          '/testIp': {
            target: 'http://197.82.15.15:8088',
            changeOrigin: true,
            pathRewrite: { 
              '^/testIp': ''
            }
          },
          '/elseIp': {
            target: 'http://182.83.19.15:8080',
            changeOrigin: true,
            pathRewrite: { 
              '^/esleIp': ''
            }
          },
        },
    
        // Various Dev Server settings
        host: 'localhost', // can be overwritten by process.env.HOST
        port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
        autoOpenBrowser: false,
        errorOverlay: true,
        notifyOnErrors: true,
        poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
    
    
        /**
         * Source Maps
         */
    
        // https://webpack.js.org/configuration/devtool/#development
        devtool: 'cheap-module-eval-source-map',
    
        // If you have problems debugging vue-files in devtools,
        // set this to false - it *may* help
        // https://vue-loader.vuejs.org/en/options.html#cachebusting
        cacheBusting: true,
    
        cssSourceMap: true
      },
    
    • Vue-cli3+ 新版本的代理配置 — vue.config.js 文件
    devServer: {
      overlay: { // 让浏览器 overlay 同时显示警告和错误
        warnings: true,
        errors: true
      },
      host: "localhost",
      port: 8080, // 端口号
      https: false, // https:{type:Boolean}
      open: false, // 配置后自动启动浏览器
      hotOnly: true, // 热更新
      // proxy: 'http://localhost:8080'   // 配置跨域处理,只有一个代理
      proxy: { // 配置多个代理
        "/testIp": {
          target: "http://197.0.0.1:8088",
          changeOrigin: true,
          ws: true, // websocket支持
          secure: false,
          pathRewrite: {
            "^/testIp": "/"
          }
        },
        "/elseIp": {
          target: "http://197.0.0.2:8088",
          changeOrigin: true,
          //ws: true, // websocket支持
          secure: false,
          pathRewrite: {
            "^/elseIp": "/"
          }
        },
      }
    }
    
    

    如果有多后台,就可在 api 文件夹下另外新建一个 elseApi.js ,书写当前 ip 下的接口请求。
    方法同上,只是 let resquest = “/elseIp/request/” 调用的时候把端口更改一下

    3. 封装 axios 实例 —— request.js

    • 在项目 src 目录下新建 utils 文件夹,然后在其中新建 request.js 文件,这个文件是主要书写 axios 的封装过程。
    /****   request.js   ****/
    // 导入axios
    import axios from 'axios'
    // 使用element-ui Message做消息提醒
    import { Message} from 'element-ui';
    //1. 创建新的axios实例,
    const service = axios.create({
      // 公共接口--这里注意后面会讲
      baseURL: process.env.BASE_API,
      // 超时时间 单位是ms,这里设置了20s的超时时间
      timeout: 20 * 1000
    })
    // 2.请求拦截器
    service.interceptors.request.use(config => {
      //发请求前做的一些处理,数据转化,配置请求头,设置token,设置loading等,根据需求去添加
       config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换
       config.headers = {
         'Content-Type':'application/x-www-form-urlencoded' //配置请求头
       }
       //注意使用token的时候需要引入cookie方法或者用本地localStorage等方法,推荐js-cookie
       const token = getCookie('名称');//这里取token之前,你肯定需要先拿到token,存一下
       if(token){
          config.params = {'token':token} //如果要求携带在参数中
          config.headers.token= token; //如果要求携带在请求头中
        }
      return config
    }, error => {
      Promise.reject(error)
    })
    
    // 3.响应拦截器
    service.interceptors.response.use(response => {
      //接收到响应数据并成功后的一些共有的处理,关闭loading等  
      return response
    }, error => {
       /***** 接收到异常响应的处理开始 *****/
      if (error && error.response) {
        // 1.公共错误处理
        // 2.根据响应码具体处理
        switch (error.response.status) {
          case 400:
            error.message = '错误请求'
            break;
          case 401:
            error.message = '未授权,请重新登录'
            break;
          case 403:
            error.message = '拒绝访问'
            break;
          case 404:
            error.message = '请求错误,未找到该资源'
            window.location.href = "/NotFound"
            break;
          case 405:
            error.message = '请求方法未允许'
            break;
          case 408:
            error.message = '请求超时'
            break;
          case 500:
            error.message = '服务器端出错'
            break;
          case 501:
            error.message = '网络未实现'
            break;
          case 502:
            error.message = '网络错误'
            break;
          case 503:
            error.message = '服务不可用'
            break;
          case 504:
            error.message = '网络超时'
            break;
          case 505:
            error.message = 'http版本不支持该请求'
            break;
          default:
            error.message = `连接错误${error.response.status}`
        }
      } else {
        // 超时处理
        if (JSON.stringify(error).includes('timeout')) {
          Message.error('服务器响应超时,请刷新当前页')
        }
        error.message = '连接服务器失败'
      }
    
      Message.error(error.message)
      /***** 处理结束 *****/
      //如果不需要错误处理,以上的处理过程都可省略
      return Promise.resolve(error.response)
    })
    //4.导入文件
    export default service
    
    
    • 特殊说明:
    鉴于有很多朋友问关于数据转换这块的问题,特在页面中单独回复一下!
    
    config.data = JSON.stringify(config.data);
    config.headers = { 'Content-Type':'application/x-www-form-urlencoded'  }
    const token = getCookie('名称')
    if(token){ 
      config.params = {'token':token} ; 
      config.headers.token= token; 
    }
    
    上述的代码都是请求的配置项,非必须,也是分情况的,data/headers /params 这种本身的参数都有多种,和后台沟通,需要什么就配什么!
    config.data = JSON.stringify(config.data); 为什么不用 qs.stringify,因为我的后台想要的只是json类型的传参,
    而qs转换会转换成为键值对拼接的字符串形式。当然你们后台需要传递字符串类型参数,那就换成qs或者其他格式方式。
    const token = getCookie('名称') 这是 token 的取值,在取之前你肯定需要发请求拿到 token,然后 setCookie 存起来,
    而名称就是你存的 token 的名称,每个人的不一样;
    config.headers = { 'Content-Type':'application/x-www-form-urlencoded' } 请求头内容的配置也是不同的,
    application/x-www-form-urlencoded :form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式),
    你可以根据实际情况去配置自己需要的;
    

    4. 封装请求 —— http.js

    • 在项目 src 目录下的 utils 文件夹中新建 http.js 文件,这个文件是主要书写几种请求的封装过程。
    /****   http.js   ****/
    // 导入封装好的axios实例
    import request from './request'
    
    const http ={
       /**
        * methods: 请求
        * @param url 请求地址 
        * @param params 请求参数
        */
       get(url,params){
           const config = {
               method: 'get',
               url:url
           }
           if(params) config.params = params
           return request(config)
       },
       post(url,params){
           const config = {
               method: 'post',
               url:url
           }
           if(params) config.data = params
           return request(config)
       },
       put(url,params){
           const config = {
               method: 'put',
               url:url
           }
           if(params) config.params = params
           return request(config)
       },
       delete(url,params){
           const config = {
               method: 'delete',
               url:url
           }
           if(params) config.params = params
           return request(config)
       }
    }
    // 导出
    export default http
    
    

    5. 正式封装API,用于发送请求 —— api.js

    • 在项目 src 目录下新建 api 文件夹,然后在其中新建 api.js 文件,这个文件是主要书写API的封装过程。
    1. 写法一:适合分类导出
    import http from '../utils/http'
    /**
    *  @parms resquest 请求地址 例如:http://197.82.15.15:8088/request/...
    *  @param '/testIp'代表vue-cil中config,index.js中配置的代理
    */
    let resquest = "/testIp/request/"
    
    // get请求
    export function getListAPI(params){
       return http.get(`${resquest}/getList.json`,params)
    }
    // post请求
    export function postFormAPI(params){
       return http.post(`${resquest}/postForm.json`,params)
    }
    // put 请求
    export function putSomeAPI(params){
       return http.put(`${resquest}/putSome.json`,params)
    }
    // delete 请求
    export function deleteListAPI(params){
       return http.delete(`${resquest}/deleteList.json`,params)
    }
    
    
    1. 写法二:使用全部导出
    import http from '../utils/http'
    // 
    /**
     *  @parms resquest 请求地址 例如:http://197.82.15.15:8088/request/...
     *  @param '/testIp'代表vue-cil中config,index.js中配置的代理
     */
    let resquest = "/testIp/request/"
    
    // get请求
    export default{
     	getListAPI(params){
        	return http.get(`${resquest}/getList.json`,params)
    	},
    	 postFormAPI(params){
        	return http.post(`${resquest}/postForm.json`,params)
    	}
    }
    
    

    注意: 项目中如果后台请求不是同一个 ip 而是多个 ip 的时候,可在 api 文件夹下建立多个 js 用来调用请求。

    我们看下之前遗留的一个问题:

    //创建新的axios实例,
    const service = axios.create({
      baseURL: process.env.BASE_API,
      timeout: 3 * 1000
    })
    
    • 之前封装公共接口的 baseUrl 时候,用了 webpack 中的全局变量 process.env.BASE_API,而不是直接写死 ip 也是为了适应多个后台或者开发的时候的 api 地址和发布的时候的 api 地址不一样这种情况。

    6. 如何在 vue 组件中调用

    方法一:用到哪个api 就调用哪个接口 —— 适用于上文接口分类导出;

    import {getListAPI,postFormAPI, putSomeAPI, deleteListAPI} from '@/api/api'
    
    methods: {
      // promise调用 链式调用, getList()括号内只接受参数;
      // get不传参
      getList() {
        getListAPI().then(res => console.log(res)).catch(err => console.log(err))
      },
      // post传参
      postForm(formData) {
        let data = formData
        postFormAPI(data).then(res => console.log(res)).catch(err => console.log(err))
      },
      // async await同步调用
      async postForm(formData) {
        const postRes = await postFormAPI(formData)
        const putRes = await putSomeAPI({data: 'putTest'})
        const deleteRes = await deleteListAPI(formData.name)
        // 数据处理
        console.log(postRes);
        console.log(putRes);
        console.log(deleteRes);
      },
    }
    
    
    

    方法二 :把 api 全部导入,然后用哪个调用哪个api —— 适用于全部导出

    import api from '@/api/api'
    
    methods: {
      getList() {
        api.getListAPI(data).then(res => {
          // 数据处理
        }).catch(err => console.log(err))
      }
    }
    
    
    更多相关内容
  • axios二次封装源代码

    2022-05-19 14:37:59
    内容概要:axios二次封装, 适合人群:具备一定编程基础,工作1-3年的前端开发 能学到什么: 1、让读者了解vue中的接口请求该怎么实现 2、开箱即用,直接集成到vue项目中,快速开发 3、包含三个文件: http.js—— 对...
  • axios二次封装

    千次阅读 2022-04-04 21:54:46
    文章目录前言axios是一个强大的发送http请求的库,通过我们的二次封装可以大大提高我们的开发效率。具体封装方法1.我们一般会在src目录下面创建一个utils作为自己的公共方法文件夹,所有的公共方法都可以放在此处...


    前言

    axios是一个强大的发送http请求的库,通过我们的二次封装可以大大提高我们的开发效率。

    具体封装方法

    1.我们一般会在src目录下面创建一个utils作为自己的公共方法文件夹,所有的公共方法都可以放在此处利于管理。

    请添加图片描述

    2.request.js具体代码

    代码如下(示例):

    /**
     * axios封装
     */
    import axios from 'axios'
    import config from '../config/index'
    
    // 创建axios实例对象
    const service = axios.create({
        timeout: 8000,
    })
    
    // 请求拦截
    service.interceptors.request.use(function (config) {
        return config
    }, function (error) {
        return Promise.reject(error)
    })
    
    // 响应拦截
    service.interceptors.response.use(function (response) {
        return response
    }, function (error) {
        return Promise.reject(error)
    })
    
    // 请求核心函数
    function request (options) {
        options.method = options.method ? options.method : 'get'
        if (options.method.toLowerCase() == 'get') { // axios中,get请求参数是params,post请求参数是data
            options.params = options.data
        }
    
        // mock
        if (config.env == 'production') { // 生产环境写死baseApi
            service.defaults.baseURL = config.baseApi // 注意baseURL在axios中要用service.defaults.baseURL修改
        } else { // 非生产环境,判断是否mock
            service.defaults.baseURL = config.mock ? config.mockApi : config.baseApi
        }
        return service(options)
    }
    
    export default request
    

    3.config.js具体代码

    /**
     * 环境配置
     */
    const env = import.meta.env.MODE || 'production' // 项目运行环境
    const EnvConfig = {
        development: { // 开发环境
            baseApi: 'https://www.fastmock.site/mock/e37ec4a29e6f5d05726e86afb57b1080/studyVue3',
            mockApi: 'https://www.fastmock.site/mock/e37ec4a29e6f5d05726e86afb57b1080/studyVue3'
        },
        test: { // 测试环境
            baseApi: '',
            mockApi: ''
        },
        production: { // 生产环境
            baseApi: '生产环境Api',
            mockApi: ''
        },
    }
    export default {
        env,
        mock: true,
        ...EnvConfig[env] // 展开运算符,遍历EnvConfig的值,复制到当前对象里
    }
    

    总结

    以上就是axios二次封装的具体内容,包含对于axios对象的二次封装,还有一个全局配置管理的config.js的封装。内置mock,axios请求拦截器和相应拦截器,可以自行添加代码使用。

    有问题欢迎评论区留言~~~

    展开全文
  • axios二次封装,绝大多数公司的前端项目,都是以这种方式来管理项目的接口,已经调用接口的方法。有token
  • axios进行二次封装

    2021-01-03 22:57:20
    这次是对axios进行简单的二次封装(vue项目中) 在项目的根目录中使用 npm i axios -S 安装好axios 创建一个http.js文件 // 提供ajax请求 // 对axios进行二次封装 import axios from 'axios' import {HOST} from './...
  • Axios 二次封装(超详细)

    千次阅读 多人点赞 2022-05-29 16:13:10
    创建http.js文件模块进行axios封装 每个代码都有注释,方便初学者学习 import axios from "axios"; //带三方类库 import qs from 'qs' // 配置不同环境下,调用不同接口 switch(process.env.NODE_ENV){ // 生产...

    简单封装get,post请求,携带token控制

    先导入axios  和qs包   

    创建http.js文件模块进行axios封装

    每个代码都有注释,方便初学者学习

    import axios from "axios";
    //带三方类库
    import qs from 'qs'
    // 配置不同环境下,调用不同接口
    
    switch(process.env.NODE_ENV){
      // 生产环境,部署到服务器上的环境
      case 'production':
      axios.defaults.baseURL='http://api.zhengqinan.cn';
      break;
      //设置测式环境的接口地址
       case 'text':
      axios.defaults.baseURL='http://api.zhengqinantext.cn';
      break;
      //开发环境接口地址
      default:
        axios.defaults.baseURL='http://api.kaifa.cn'
    }
    /**
     * 设置超时时间和跨域是否允许携带凭证
     */
    axios.defaults.timeout=10000  //设置十秒
    axios.defaults.withCredentials=true ;//例如:登录校验session和cookie
    /**
     * 设置请求数据参数传递的格式,默认是json格式,但是在登录校验中后台一般设置请求格式:x-www-form-urlencoded(name=xxx,age=xxx)
     * 看服务器要求什么格式
     */
    axios.defaults.headers['Content-Type']='application/x-www-form-urlencoded' //声明请求格式
    axios.defaults.transformRequest=data=>qs.stringify(data)  //qs是第三方库,转换为x-www-form-urlencoded
    /**
     * 设置请求拦截器:----在项目中发请求(请求没有发出去)可以做一些事情
     * 客户端->[请求拦截器]->服务器端
     * token校验(JWT):接收到服务器的token,存储到vuex/本地存储中,每次向服务器发送请求,我们应该把token带上
     * config :发起请求的请求配置项
     */
    axios.interceptors.request.use(config=>{
      let token=localStorage.getItem('token')
      token && (config.headers.Authoriztion=token)
      return config 
    },error=>{
      return Promise.reject(error)
    })
    /**
     * 设置响应拦截器
     * 服务器端返回信息->[响应拦截器]->客户端js获取到信息
     * response中包含属性:
     * data:相应数据,status:响应状态码,statusText:响应状态信息,headers:响应头,config:响应提供的配置信息,request
     */
    axios.interceptors.response.use(response=>{
        return response.data //将主体内容返回  axios.get().then(result=>{拿到的就是响应主体})
    },error=>{
      let { response}=error
      // 如果有返回结果
      if(response){
        switch(response.status){
          //这里面根据公司需求进行写
          case 404:
            //进行错误跳转之类
            break;  
        }
      }else{
        //服务器没有返回结果 分两种情况 断网  服务器崩了
        if(!window.navigator.onLine){
          //断网处理:跳转到断网页面
          return
        }
        return Promise.reject(error)
      }
    })

     2.这里可以分页面进行创建接口请求文件

    使用post 和get进行请求

    import axiosHttp from './http.js'
    export const getuserinfor=(params)=>{
      return axiosHttp({
        method:'get',
        url:'user/xxxx',
        params
      })
    };
    export const login=(data)=>{
      return axiosHttp({
        method:'post',
        url:'login/xxxxx',
        data,
       
      })
    }

    3.在代码中进行使用  先导入模块,再进行使用

    <template></template>
    
    <script>
    import { login } from "../api/user.js";
    export default {
      data() {
        return {};
      },
      methods: {
        async getlogin() {
          let params = {
            emile: 123,
            name: "zhangsna",
          };
          let data = await login(params);
        },
      },
    };
    </script>
    
    <style>
    </style>

                                 

    展开全文
  • axios二次封装(详细+跨域问题)

    千次阅读 多人点赞 2022-04-22 22:13:34
    一,为社么要对axios进行二次封装? 答:主要是要用到请求...2.2 通常情况下,项目都有一个api文件夹(axios二次封装的文件夹) a.创建一个api文件夹 b.在api文件夹下创建request.js(用于书写axios二次封装的代码) c.在

    一,为什么要对axios进行二次封装?
    答:主要是要用到请求拦截器和响应拦截器;
    请求拦截器可以在发请求之前可以处理一些业务
    响应拦截器当服务器数据返回以后,可以处理一些事情

    二,axios的二次封装
    2.1 安装axios

    在当前的项目路径下安装

    cnpm install --save axios
    

    安装成功
    在这里插入图片描述
    2.2 通常情况下,项目都有一个api文件夹(axios二次封装的文件夹)
    a.创建一个api文件夹
    b.在api文件夹下创建request.js(用于书写axios二次封装的代码)

    在这里插入图片描述
    c.在request.js书写axios二次封装的代码

    //对axios进行二次封装,将刚才下载好的axios导入进来
    import axios from "axios";
    
    //1.利用axios对象的方法create,去创建一个axios实例
    //2.requests就是axios,只不过稍微配置一下
    const requests = axios.create({
    	//配置对象
    	//基础路径,发请求的时候,路径当中会出现api,不用你手写
    	baseURL:'/api',
    	//请求时间超过5秒
    	timeout:5000
    });
     //请求拦截器:在发请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情
     requests.interceptors.request.use((config)=>{
     	//config是个配置对象,对象里面有一个属性很重要,headers请求头
     	return config;		
     });
     
     //响应拦截器:包含两个函数(一个是成功返回的函数,一个是失败的返回的函数)
     requests.intercetors.response.use((res)=>{
    	//成功的回调函数:服务器响应数据回来以后,响应拦截器可以检测到,可以做一些事情。
    	return res.date;	
    },(erroe)=>{
    	return promise.reject(new Error('faile'))
    });
    //对外暴露requests(axios的二次封装)
    export default requests;
    

    d.对api进行统一管理 (请求的接口比较多,需要统一管理)

    1.在api文件夹新建一个index.js,用于管理接口
    2.在index.js书写代码

    //导入刚才写好的axios二次封装的requests
    import requests from "./request";
    //三级联动接口
    ///api/product/getBaseCategoryList get 无参数
    //发请求:axios发请求返回结果promise对象
    export const reqCategoryList = ()=>{
    	//由于前面配置了基础路径,所以不用加/api
    	return requests({url:'/product/getBaseCategoryList',method:'get'}
    });
    

    3.跨域问题
    什么是跨域:协议,域名,端口号不同请求,称之为跨域
    例:http://localhost:8000/#/home —前端项目的本地服务器
    http://39.98.123.211 —调取数据的后台服务器
    直接调取后台服务器数据的话,会出现404

    4.解决跨域问题(3种:JSONP,CROS和代理)

    我们用代理解决,在vue.config.js配置如下代码
    在这里插入图片描述

    //代理跨域
      devServer:{
        proxy: {
          "/api": {
          //后台服务器地址
            target: "http://39.98.123.211",
           
          }
        }
      }
    

    完成

    展开全文
  • 最后,在小型项目中,我们完全在组件的生命周期函数中发送请求,但当项目越来越大时,接口几十上百个时,一旦我们需要修改接口地址时,就只能...第步在src目录下创建api/requests.js文件,实现对axios进行封装。...
  • Axios 二次封装

    千次阅读 2022-06-08 16:56:05
    项目中对 axios 进行了二次封装,使用到了以下几个API: axios.create([config]):创建一个新的axios axios.interceptors.request.use(config=>{}, error=>{})
  • 如何对axios二次封装

    2022-07-07 11:33:04
    axios进行简单的二次封装
  • vue3 axios二次封装

    2022-09-13 14:46:44
    1.在src下面新建一个目录,在目录里面新建一个http.js。2.在发送请求的组件中引入并使用封装axios
  • vue 使用axios二次封装

    千次阅读 2022-02-16 23:14:08
    vue 使用axios二次封装 1.axios封装代码 import axios from 'axios' import { baseURL } from '../config/index.js' // @lzy // 创建实例 const instance = axios.create({ baseURL: baseURL,//设置接口请求ip地址...
  • ts版axios二次封装

    2022-03-14 20:21:15
    import axios from "axios"; export const Service = axios.create({ timeout: 8000, //延迟时间 method: 'POST', headers: { "content-Type": "application/x-www-form-urlencoded", "pc-token": "4a82b
  • easy-axios基于 axios二次封装,方便程序员开发功能取消重复请求,可关闭请求数据缓存,可关闭因网络波动导致的请求失败而自动发请求,可关闭封装调用方式统一的 REQUEST/GET/POST/PUT/DELETE/FORMDATA 方法,...
  • 详解vue axios二次封装

    2020-10-18 08:35:38
    给大家分享了vue axios二次封装的相关知识点等内容以及实例代码,有兴趣的朋友可以参考学习下。
  • axios二次封装教程

    千次阅读 2022-02-02 22:22:18
    axios二次封装接口,方便管理所有接口,提高可维护性。适用于多种项目,如Vue项目。
  • 最简单的axios封装
  • 1、axios二次封装 二次封装axios是为了请求拦截器、响应拦截器。 **请求拦截器:**可以在发送请求之前可以处理一些业务; **响应拦截器:**当服务器数据返回以后,可以处理一些事情。 安装axios npm install --save ...
  • react配置axios二次封装

    2021-09-02 18:51:41
    1.src文件夹下新建api文件夹 ...import axios from "axios"; export const Service = axios.create({ timeout: 3000, //延迟时间 method: 'POST', headers: { "content-Type": "app...
  • axios-vue-http基于 axios 进行二次封装, 提供 vue 项目使用InstallUsing npm:$ npm install cover-axiosUsing yarn:$ yarn add cover-axioscover-axios apiimport HTTP, { genApi } from "cover-axios";const ...
  • 目录 ... 1.安装axios 2.在项目中经常出现一个API文件夹来放置axios ...3.在api文件下的request.js中对axios进行二次封装 4.关于axios可以参考git | NPM关于aixos的文档 温馨提示:对于aixos最基本的二次封装要看得懂
  • 对于axios进行二次封装
  • axios二次封装之get请求

    千次阅读 2022-03-31 20:28:08
    但是原本项目内简单封装 axios 的 get 请求就显得不那么简便了 (使用了在 url 后面进行拼接携带参数的方式 ),看着很繁琐 , 用着也不爽 所以打算再次对 get 请求处理一下 , 使之使用起来能更加的高效 :

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,901
精华内容 4,360
关键字:

axios二次封装

友情链接: 一元多项式.zip