Vue封装请求到一个js文件(vue2、vue3通用)

本文介绍了如何在Vue项目中使用axios进行统一的API请求配置,包括设置基础URL、请求拦截器以及在不同版本Vue中导入和调用API的方法。
摘要由CSDN通过智能技术生成

首先在src目录下新建一个文件夹utils文件夹 其中新建request.js文件

// 组件功能:负责统一导出一个配置后的 axios
// 1.导入 axios 模块
import axios from 'axios'
// 2 .配置 axios 模块
// 2.1. 配置基地址
axios.defaults.baseURL = 'http://127.0.0.1:8000/api/'

// 2.2 设置请求拦截器
// 请求在到达服务器之前,先会调用use中的这个回调函数来添加请求头信息
axios.interceptors.request.use(config => {
    // 为请求头对象,添加token验证的Authorization字段
    let token = window.sessionStorage.getItem("token");
    config.headers.Authorization = token;
    return config
})
// 
// 3.导出 axios 模块方法
export default axios

在src目录下新建api文件夹(具体请求的地址)代码示例

import axios from "@/utils/request.js";
const coures = {
   updateProductCode(data){
   return axios({
  url: '/product/updateByCode',
  method: 'post',
   data
   })
   },
getByproductListSearch(data) {
    return axios({
      url: '/product/search',
      method: 'post',
      data
    })
  }
}

在main.js文件中

//vue2
import api from './api/requestmain'
Vue.prototype.$api = api
//vue3 不需要配置

调用

//vue2 (示例)
 updateByUser() {
            let data = {
                id: this.user.id
            }
            this.$api.getUserById(data).then((res) => {
                
                this.user = res.data;
      
            })
        },
//vue3(示例)
import { userUpdate, userLogin } from "../api/requestmain";
const systemUserUpdate = async () => {
  let res = await userUpdate(updateInfo.value);
  if (res.data.code == 200) {
    ElMessage({
      type: "success",
      message: res.data.msg,
    });
  } else {
    ElMessage({
      type: "info",
      message: res.data.msg,
    });
  }
};

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值