vue-封装axios请求

本文记录了在Vue项目中封装axios的详细步骤,包括配置baseConfig.js、pro.env文件,以及在src/api创建httplib.js进行封装。在组件中调用接口的示例也一同给出,提醒开发者注意模块导出和导入的正确匹配,避免使用module.exports和import混用导致错误。
摘要由CSDN通过智能技术生成

最近接手新的vue项目,发现axios竟然没有封装,立马动手封装,这里记录一下完整的封装过程,废话不说,直接上代码
baseConfig.js文件

//存放各个服务器的地址
// const express = require('express')
const proEnv = require('./pro.env')  // 生产环境配置文件,这里给出一个示例,其他都相似
const uatEnv = require('./uat.env')  // 测试环境
const devEnv = require('./dev.env')  // 本地环境
// const app = express()
const env = process.env.NODE_ENV;
console.log("env",env)
let target = '';
if (env === 'development') {
    target = devEnv.hosturl
} else if (env === 'production') {
    target = proEnv.hosturl
} else {
    target = uatEnv.hosturl
}
// module.exports =  target
export default target;

pro.env文件

// 生产环境
const hosturl = 'http://xx.xx.xx.xxx:xx'
module.exports = {
  NODE_ENV: 'production',
  hosturl: hosturl
}

在src/api下新建一个httplib.js来放封装内容

import axios from 'axios'
import {
    stringify
} from "qs";
// 引入上述文件
import target from "../config/baseConfig.js";

/*
* 封装axios  2020.4.7 --by lhg
*/
const codeMessage = {
    200: "服务器成功返回请求的数据。",
    201: "新建或修改数据成功。",
    202: "一个请求已经进入后台排队(异步任务)。",
    204: "删除数据成功。",
    400: "发出的请求有错误,服务器没有进行新建或修改数据的操作。",
    401: "用户没有权限(令牌、用户名、密码错误)。",
    403: "用户得到授权,但是访问是被禁止的。",
    404: "发出的请求针对的是不存在的记录,服务器没有进行操作。",
    406: "请求的格式不可得。",
    408: "请求失败了",
    410: "请求的资源被永久删除&
Vue2中封装Axios请求可以按照以下步骤进行: 1. 首先,安装axiosvue-axios依赖。在命令行中运行以下命令: ``` npm install axios vue-axios --save ``` 2. 在Vue的入口文件(例如main.js)中导入axiosvue-axios,并使用Vue.use()方法将vue-axios注册为Vue插件: ```javascript import axios from 'axios'; import VueAxios from 'vue-axios'; Vue.use(VueAxios, axios); ``` 3. 创建一个api.js文件用于封装所有的接口请求。在api.js文件中,可以定义一个全局的axios实例,并设置基础URL、请求拦截器和响应拦截器等: ```javascript import axios from 'axios'; const instance = axios.create({ baseURL: 'http://api.example.com', // 设置基础URL }); // 请求拦截器 instance.interceptors.request.use( (config) => { // 在发送请求之前做一些处理,例如添加请求头 config.headers.Authorization = 'Bearer token'; return config; }, (error) => { return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( (response) => { // 对响应数据进行处理,例如获取返回的数据 return response.data; }, (error) => { return Promise.reject(error); } ); export default instance; ``` 4. 在需要发送请求的组件中,导入api.js文件,并使用封装好的axios实例发送请求: ```javascript import api from './api.js'; // 发送GET请求 api.get('/users') .then((response) => { // 处理返回的数据 console.log(response); }) .catch((error) => { // 处理错误 console.error(error); }); // 发送POST请求 api.post('/users', { name: 'John Doe' }) .then((response) => { // 处理返回的数据 console.log(response); }) .catch((error) => { // 处理错误 console.error(error); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值