封装axios请求接口

    科技2024-05-26  69

    封装axios请求接口

    传统的axios请求只适合小型项目那种只有几个请求接口的但是一但项目过大接口过多的话使用传统的axios请求就显得不太合理而且太过于麻烦 比如请求接口发生了改变的话那么就得需要一个一个的去更改 假如有一百个接口的话就需要更改一百个页面里面的接口太过于麻烦而且不太容易维护 这时可以把请求接口进行二次封装既减少代码的冗余而且利于后期代码维护

    第一步先创建两个文件夹 一个http一个api

    在http文件夹里创建http.js
    里面引入下载的axios然后设置默认路径和请求方式
    import axios from 'axios'; if (process.env.NODE_ENV == 'development') { //设置默认路径 axios.defaults.baseURL = 'http://120.53.31.103:84/'; } if (process.env.NODE_ENV == 'production') { axios.defaults.baseURL = 'https://wap.365msmk.com'; } //设置请求超时 axios.defaults.timeout = 5000; //设置请求拦截 有时后台会根据客户端来返回数据设置H5是告诉后台是使用电脑浏览器H5打开的 axios.interceptors.request.use( config=>{ config.headers={DeviceType:'H5'} return config } ) // axios.interceptors.response.use( // response=>{ // }, // error=>{ // if(error.response.status){ // } // } // ) //设置请求方式首先get请求 //两个参数 url地址 params进行操作resolive="请求成功",reject="请求失败" export function get(url, params) { return new Promise((resolve, reject) => { axios.get(url, { params: params }).then(res => { resolve(res) }).catch(err => { reject(res) }) }) } //post请求方式道理同上 export function post(url, params) { return new Promise((resolve, reject) => { axios.post(url, params).then(res => { resolve(res.data) }).catch(err => { reject(err.data) }) }) }

    然后在api文件夹里创建api.js接着使用解构赋值的方式因为http.js里面的get和post 解构赋值可以在一个文件里引入自己想要引入的属性和方法

    //引入get和post import { get, post } from "../http/http.js"; //然后设置需要请求数据的接口然后导出 export function getAppIndex() { return get('api/app/recommend/appIndex') }

    这种二次封装api的方法非常简单在views的任何组件里面都可以导入封装好的api接口

    import { getAppIndex} from "../../api/api"; async mounted() { var res = await getAppIndex(); this.list = res.data.data; // console.log(this.list); },

    二次封装接口api既减少代码的冗余又利于后期维护

    Processed: 0.013, SQL: 9