• vue axios封装


    前言:

    对第三方库进行二次封装和抽离到统一模块,项目面对自己的模块进行开发。如果有一天更换库,只需要修改自己模块中的代码,无需对整个项目进行重构。

    将axios网络请求库封装到network文件下的request.js中,项目中所有网络请求相关,全部面对request.js开发。


    一、vue目录结构

    二、封装

    import axios from "axios"
    
    // 如果换axios框架,只需本页去掉axios相关,导入最新框架,return new Promise()就可以,项目中其他文件依旧正常使用
    export function request(config) {
        const instance = axios.create({
          baseURL: 'http://123.207.32.32:8000',
          timeout: 5000
        });
    
      // 2. 拦截器(拦截之后进行对应操作,完成操作后需要返回回去)
      // 2.1请求拦截
        instance.interceptors.request.use(success =>{
          // 一般做1. 每次网络请求的时候都希望在界面中显示一个请求图标
                      //  2. 某些网络请求(比如登录(token)),必须携带一些特殊的信息 
          console.log(success);
          return success   // 操作完成后返回回去,不然main里面拿不到
        },err =>{
          // 发不出去请求的时候到这里,一般不会出现
          console.log(err)
        })
        
        //  2.2  响应拦截
        instance.interceptors.response.use(res =>{
          console.log('响应拦截');
          console.log(res.data);
          return res.data
        },err =>{
          console.log('拦截服务器响应错误')
          console.log(err)
        })
    
        // 发送网络请求
        return instance(config)
    }

    三、使用

    // 需要网络请求的地方导入,使用
    import {request} from "./network/request";
    
    request({
      // url: '/home/multidata/aaaaaaaaaaaaa'         // 错误请求测试
      url: '/home/multidata'
    
    }).then(res =>{
      console.log('main里面',res);
    }).catch(err =>{
      console.log("main里面",err);
    })
  • 相关阅读:
    Django入门
    RCNN 研究相关
    [Android UI]View滑动方式总结
    [Android UI]View基础知识
    [Android]Android开发艺术探索第1章笔记
    [Leetcode]017. Letter Combinations of a Phone Number
    java之this关键字
    POJ 1000 A+B
    [Leetcode]016. 3Sum Closest
    [Leetcode]015. 3Sum
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/12326877.html
Copyright © 2020-2023  润新知