vue封装axios请求api

第一种

先创建utils文件创建http.js和requset.js文件 在创建一个api文件创建任意js文件 index.js 然后下载安装axios 在http.js文件中写入代码如下

js文件中写入代码如下

import axios from "axios"; 
const http = axios.create({

    baseURL: "/api",
    timeout: 10000

})
 
// 请求拦截
http.interceptors.request.use(config => {

    return config

}, err => {

    throw new Error(err)

})
 
 
// 响应拦截
http.interceptors.response.use(res => {

    return res.data

}, err => {

    throw new Error(err)

})
 
export default http; 

然后再requset文件中写入代码如下

import http from "./http";
 
function request({ method = 'get', url, data = {}, params = {} }) {
    return http({
        method,
        url,
        data,
        params
    })
}
 
export default request;
import request from "../utils/requset";
// 用户登陆的接口
export const cnode = () => request({ url: '/home' });

第二种

先在src文件夹下新建两个js文件一个是http.js  一个是request.js文件

在http.js文件中写下列代码

import axios from "axios";
const Axios = axios.create({
  baseURl: "  (请求的公共路径)  ",
  timeout: 10000,  //请求超时时间
});
Axios.interceptors.request.use((config) => {
  return config;
});
Axios.interceptors.response.use(
  (config) => {
    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
);
export default Axios;


例:

import axios from "axios";
const Axios = axios.create({
  baseURl: "https://blog.csdn.net/Helloxd020406",
  timeout: 10000,
});
Axios.interceptors.request.use((config) => {
  return config;
});
Axios.interceptors.response.use(
  (config) => {
    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
);
export default Axios;

在request.js中写下

import http from "./http.js"; 
var baseURl = "  (请求的公共路径)   ";
export const 请求的方法 = (请求页传递过来的参数) => {
  return http.get(baseURl + " 接口 ", {
    params: content  ,  //需要请求的数据
  });
};

例

import http from "./http.js";
var baseURl = "https://blog.csdn.net/Helloxd020406";
export const getList = (page) => {
  return http.get(baseURl + "/rl", {
    params: page,
  });
};

在请求页写下

 getList(this.请求的参数).then((res) => {
      console.log(res);
      this.arr = res.data.result.list;  //赋值把请求后的赋给数组
    });


例

  getList(this.page).then((res) => {
      console.log(res);
      this.arr = res.data.result.list;
    });

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的提问!下面是一个基于Vue封装Axios请求示例代码: ```javascript import axios from 'axios' import { Message } from 'element-ui' // 创建axios实例 const service = axios.create({ baseURL: 'http://api.example.com', timeout: 5000 // 请求超时时间 }) // 请求拦截器 service.interceptors.request.use( config => { // 在发送请求之前添加一些请求头参数 config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token') return config }, error => { // 处理请求错误 console.log(error) return Promise.reject(error) } ) // 响应拦截器 service.interceptors.response.use( response => { // 处理响应数据 const res = response.data if (res.code !== 200) { Message({ message: res.message || 'Error', type: 'error', duration: 5 * 1000 }) return Promise.reject(new Error(res.message || 'Error')) } else { return res } }, error => { // 处理响应错误 console.log(error) Message({ message: error.message, type: 'error', duration: 5 * 1000 }) return Promise.reject(error) } ) // 封装请求方法 const request = { get(url, params) { return service({ method: 'get', url, params }) }, post(url, data) { return service({ method: 'post', url, data }) }, put(url, data) { return service({ method: 'put', url, data }) }, delete(url) { return service({ method: 'delete', url }) } } export default request ``` 当然,对于不同的项目和需求,具体的封装方式也可能会有所不同。希望这段代码能够帮助您进一步理解Vue中如何封装Axios请求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值