我是靠谱客的博主 眼睛大鸡,最近开发中收集的这篇文章主要介绍axios在vue中的封装使用一、安装axios二、创建文件三、请求接口文件四、配置代理五、请求接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单封装 axios


一、安装axios

npm install axios

npm install --save axios vue-axios

二、创建文件

src 目录下创建一个叫 apiutils 的文件夹,主要用于存放请求数据的接口。在utils文件夹下创建一个叫 request 的 js 文件,这里的文件夹叫什么无所谓,我这里只是做简单示范。

import axios from "axios";
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL:"http://localhost:8080",
// 这里以这个地址为例,建议写到.env中
timeout:30000,//请求超时时间
headers:{
"Content-Type":"application/json;charset=UTF-8" //表单数据类型
},
withCredentials: true
// 自动获取cookie
})
// request
拦截器 发送数据到后台服务器前拦截
service.interceptors.request.use(
config=>{
// 可在此配置请求头,设置token,设置loading等
return config;
},
error=>{
// console.log("axios中request报错",error);
Promise.reject(error);
}
)
// response
拦截器 获取后台数据前拦截
service.interceptors.response.use(
response=>{
return response.data;
},
error=>{
// console.log("axios中response报错",error);
Promise.reject(error);
}
)
export default service;

建议 baseURL写在 .env 文件中,如果没有就自己创建

  • .env 全局默认配置文件,不论什么环境都会加载合并
  • .env.development 开发环境下的配置文件
  • .env.production 生产环境下的配置文件

命名格式:

VUE_APP_NAME = value

VUE_APP_是规定的命名格式,NAME是自定义的变量名。

全局访问格式:

process.env.VUE_APP_NAME

三、请求接口文件

一般把接口文件集中管理,如登录的就是login.js,请求信息的就info.js,这里以 src/api 下创建一个login.js

import request from "@/utils/request";
// 登录 post
export function getLogin(data){
return request({
url:"/login",
method:"post",
data,
// 携带的参数
})
}
// 测试 test
export function getTest(params){
return request({
url:"/test",
method:"get",
params:,
// 携带的参数
})
}

四、配置代理

在vue.confing.js中配置代理,没有就自己创建

const { defineConfig } = require('@vue/cli-service')
const port = 8081
module.exports = defineConfig({
transpileDependencies: true,
lintOnSave:false,
devServer: {
host: '0.0.0.0',
port,
// 请求的端口号
open: true,
// 配置后自动启动浏览器
overlay: {
// 让浏览器同时显示警告和错误
warnings: true,
errors: true
},
proxy: {
'/api': {
target: process.env.VUE_APP_BASE_URL,
// 代理地址,如果没有配置就是 http://.... 你自己axios请求的地址
ws: true,
// 如果要代理 websockets,配置这个参数
changeOrigin: true,
// 是否允许跨域
secure: false,
// 如果是https接口,需要配置这个参数
}
},
pathRewrite: {
"^/api": "" // 路径重写,后边还有路径的话,会自动拼接上
}
},
})

/api”:当遇到 以 ’ /api ’ 开头的请求,就会把 target 字段加上,请求地址为http://localhost:8081/api/xxxx
pathRewrite :路径重写,把‘ /api ’ 替换为空,请求地址为 http://localhost:8081/xxxx

五、请求接口

如在App.vue中请求接口

import { getLogin, getTest } from "@/api/login"
export default {
data(){
return {
username:"张三",
password:"123456"
}
},
created(){
// 登录
getLogin({
username:this.username,
password:this.password
}).then( res =>{
console.log(请求成功=>",res);
}).catch( err =>{
console.log(请求失败=>",res)
});
this.test();
},
methods: {
// 测试
test(){
getLogin({
id:1
}).then( res =>{
console.log(请求成功=>",err);
}).catch( err =>{
console.log(请求失败=>",err)
})
}
}

最后

以上就是眼睛大鸡为你收集整理的axios在vue中的封装使用一、安装axios二、创建文件三、请求接口文件四、配置代理五、请求接口的全部内容,希望文章能够帮你解决axios在vue中的封装使用一、安装axios二、创建文件三、请求接口文件四、配置代理五、请求接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部