zoukankan      html  css  js  c++  java
  • 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);
    })
  • 相关阅读:
    洛谷 P1057 传球游戏
    BZOJ 1801: [Ahoi2009]chess 中国象棋
    BZOJ 1806: [Ioi2007]Miners 矿工配餐
    51nod 1276 岛屿的数量
    BZOJ 1800: [Ahoi2009]fly 飞行棋
    路由控制和视图层
    django的零碎注意点
    Django框架简介
    Bootstrap框架
    jQuery基础知识
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/12326877.html
Copyright © 2011-2022 走看看