vue封装axios

article/2025/9/20 20:20:32

(4条消息) Vue——axios的二次封装_前端杂货铺的博客-CSDN博客

1.下载axios依赖包

npm install axios

2.在src目录下新建utils文件夹,在utils文件夹下新建request.js文件

 3.request.js

import axios from 'axios'
import { Message, MessageBox } from 'element-ui'  //导入element-ui组件库// 创建axios的对象
const instance = axios.create({baseURL: "https://api.cat-shop.penkuoer.com",  //配置固定域名timeout: 5000
})// 请求拦截
// 所有的网络请求都会走这个方法,可以在请求添加自定义内容
instance.interceptors.request.use(function (config) {config.headers.token = '123456' // 请求头添加token值config.headers.info = 'lxy'  //请求头添加info值return config},function (err) {return Promise.request(err)}
)// 响应拦截
// 此处可以根据服务器返回的状态码做相应的数据
instance.interceptors.response.use(function (response) {const res = responseif (res.status === 500) {MessageBox.alert('系统未登录,请重新登录', '错误', {confirmButtonText: '确定',type: 'error'}).then(() => {store.dispatch('FedLogOut').then(() => {location.reload()})})return Promise.reject('error')} else if (res.errno === 502) {MessageBox.alert('系统内部错误,请联系管理员维护', '错误', {confirmButtonText: '确定',type: 'error'})return Promise.reject('error')}},function (err) {return Promise.request(err)}
)// 封装get和post请求
export function get(url, params) {return instance.get(url, {params})
}export function post(url, data) {return instance.post(url, data)
}export default instance;

方式1:(最常用使用)

在src目录下新建api文件夹,在api文件夹中新建index.js用于存放请求接口

api目录下的index.js

import request from "@/utils/request";  //导入封装请求的js文件export function products(params) {return request({url: "/api/v1/products",  //接口路径method: "get",  //接口方法headers: { 'Content-Type': 'multipart/form-data' }, //给接口添加请求头params  //接口参数});
}export function login(data) {return request({url: "/api/v1/auth/login",method: "post",data,// post请求接口后面拼接参数params: {currentOpenId: 'currentOpenId',currentCompanyOpenId: 'currentCompanyOpenId'}});
}

页面使用:

<template><div><button @click="get()">封装的get</button><button @click="post()">post</button></div>
</template><script>
import {products,login} from "@/api/index"  //导入api目录下的接口文件,并在{}中写使用的接口
export default {methods: {get(){products({name:"lxy",age:18,date: new Date().getTime()}).then(res => {console.log('res',res.data);})},post(){let obj = {name:'lxy',age:18}login(obj).then(res => {console.log('res',res.data);})}},
};
</script>

方式2:(不常用)

request.js

export function get(url, params) {return instance.get(url, {params})
}export function post(url, data) {return instance.post(url, data)
}

页面使用:

<template><div><button @click="meGet()">封装的get</button><button @click="mePost()">post</button></div>
</template><script>
import { get, post } from "@/utils/request";
export default {methods: {// 方式1 在方法里直接写api路径meGet() {get("/api/v1/products",{name:'aaa',age:18}).then((res) => {console.log("res", res);});},mePost() {let obj = {name:108}post("/api/v1/auth/login", obj).then((res) => {console.log("res", res);});},},
};
</script>

方式3:原生方法

    methods:{getMthods(){axios.get("https://api.cat-shop.penkuoer.com/api/v1/products",{params:{page:3,per:2},headers:{}}).then(res => {console.log('res',res);})},postMthods(){axios.post("https://api.cat-shop.penkuoer.com/api/v1/auth/login",{name:"lxy",age:18},{params:{a:123,b:123}}).then(res => {console.log('res',res);})},}


http://chatgpt.dhexx.cn/article/mER3U4jv.shtml

相关文章

axios

SegmentFault 头条问答专栏讲堂职位活动 消息注册 登录 home javascriptphppythonjavamysqliosandroidnode.jshtml5linuxccss3gitgolangrubyvimdockermongodb 文 axios 中文文档 翻译 axiosjavascript farmerz 2月24日发布 2 推荐 45 收藏&#xff0c;3.2k 浏览 axios 版…

Axios介绍

Axios是专注于网络数据请求的库&#xff0c;相比于XMLHttpRequest对象。axios简单易用&#xff0c;相比于jQuery&#xff0c;axios更加轻量化&#xff0c;只专注于网络数据请求 引入外部js文件 <script src"https://unpkg.com/axios/dist/axios.min.js"><…

VUE的axios的详细介绍和用法

Vue中发送网络请求有非常多的方式, 那么, 在开发中, 我们该如何选择呢? 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? 非常好解释, 配置和调用方式等非常混乱.编码起来看起来就非常蛋疼. 所以真实开发中很少直接使用, 而是使用jQuery-Ajax 选择二: 在前…

AJAX,Axio异步框架(对原生AJAX封装)。web分区

1.Ajax的理解 以前服务器里的数据&#xff0c;都是存在Servlet域里&#xff0c;然后发给JSP&#xff0c;来进行显示。 有了AJAX&#xff0c;可以和服务器通信。不需要JSP作页面。 可以在Servlet把数据发给浏览器&#xff0c;然后在HTML页面显示。 1.1 以前的方法 1.2 现在的方…

类方法和对象方法的区别

类方法和对象方法 1.类方法属于本类的方法&#xff0c;不会因创建对象的不同而改变&#xff0c;类方法随着类的字节码文件加载而加载&#xff1b; 2.对象方法属于当前类创建的某个对象&#xff0c;会随着创建对象的不同而改变。如下图所示代码&#xff1a;

python中什么叫类、什么叫对象_Python中的类和对象是什么

一、面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码。 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。 二、类和对象 1、类的概念 面向对象编程的2个非常重要的概念:类和对象是面向对象编程的核心。 在使用对…

类与对象的区别?

对于初学者来说&#xff0c;类与对象之间的关系的非常模糊不清的&#xff0c;在这里跟大家分享一下&#xff0c;让初学者有所帮助。 一、类的概念&#xff1a; 类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述&#xff0c;其内部包括属性…

Java类和对象 详解(一)

一、面向对象简述 面向对象是一种现在最为流行的程序设计方法&#xff0c;几乎现在的所有应用都以面向对象为主了&#xff0c;最早的面向对象的概念实际上是由IBM提出的&#xff0c;在70年代的Smaltalk语言之中进行了应用&#xff0c;后来根据面向对象的设计思路&#xff0c;才…

C++类和对象详细总结

目录 目录 类与对象概念 什么是对象 什么是类 什么是方法&#xff1a; 自定义类型&#xff08;类的关键字&#xff1a;class&#xff09; 定义类的格式 封装 类的特性 访问权限以及访问限定符 struct 定义的类和class定义的类的区别&#xff1a; 小结 对象中包含了…

C++类和对象详解

类与对象上篇&#xff1a; 主要内容&#xff1a; 1.类和对象的区别。 2.类的定义。 3.类的访问限定符和封装 4.类的作用域 5.类的实例化&#xff08;用类类型创建对象&#xff09; 6.计算类对象的大小 7.this指针 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析…

面向过程和面向对象区别

&#xff08;1&#xff09;从设计思路来看。 面向过程&#xff1a;程序设计的重点是分析解决问题的步骤&#xff0c;以及完成步骤的流程&#xff0c;是一种结构化自上而下的程序设计方法。面向对象&#xff1a;程序设计的重点是把构成问题的事物分解成对象&#xff0c;从局部着…

Java基础——类和对象

目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法&#xff1a; 2. 创建具体的对象&#xff1a; 3.范例&#xff08;创建一个Person 类的对象&#xff09; 三、static关键字 &#xff08;一&#xff09;static修饰属性&#xff08;类属性、类变量&a…

类,对象,方法与函数的区别

面向对象&#xff08;Object oriented Programming&#xff0c;OOP)编程 的思想主要是针对大型软件设计而来的。面向对象编程将数据和操作数据相关的方法封装到对象中&#xff0c;组织代码和数据的方式更加接近人的思维&#xff0c;使程序的扩展性更强、可读性更好&#xff0c;…

C++的类和对象

目录 C面向对象的三大特性&#xff1a;封装、继承、多态 封装 构造函数和析构函数 构造函数的分类与调用 深拷贝与浅拷贝 类对象作为类成员 静态成员 成员变量和成员函数是分开存储的 const修饰成员函数 友元 运算符重载 继承 多态 C面向对象的三大特性&#xff1…

java实例和对象对象的区别_java中实例与对象的区别和联系

对象是抽象的说法&#xff0c;你可以把它看作一个符合它自身定义的所有实例的代表&#xff0c;而实例则是对象的现实体现。 你可以说一个实例是一个对象&#xff0c;但你不能说一个对象是一个实例。因为定义对象时只是把自身的规则和逻辑定义好&#xff0c;实例可以通过输入不同…

怎么来理解java类和对象的区别

对象在需求中的使用 在具体问题中如何使用面向对象去分析问题&#xff0c;和如何使用面向对象。 以把大象装冰箱为例进行分析&#xff1a;在针对具体的需求&#xff0c;可以使用名词提炼的办法进行分析&#xff0c;寻找具体的对象。 需求&#xff1a;把大象装冰箱里 对象&…

C++类对象和类指针的区别

好奇这个&#xff0c;所以参考了一些帖子&#xff0c;写下心得。 一篇转载率较高的帖子&#xff1a;C 类对象和 指针的区别 大佬都不贴结果。。。。所以这里我给出代码和结果&#xff1a; #include<iostream> using namespace std;class Test{ public:int a;Test(){a …

Java中类和对象的区别

一、类和对象 1、类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合简单理解&#xff1a;类就是对现实事物的一种描述 类的组成 属性&#xff1a;指事物的特征&#xff0c;例如&#xff…

安装svn 汉化包 也不能设置中文

(以下为亲测!) 汉化包地址:https://osdn.net/projects/tortoisesvn/storage 进入地址之后:选择对应版本-->>Language Packs-->>选择中文包 问题: 已经安装svn汉化包,但是不能设置为中文. 解决: 确保汉化包版本对应svn版本.如果汉化包版本已经对应svn版本,则把…

SVN汉化失败的原因及解决方案(通过SVN官网下载SVN和相应的汉化包)

1、没删除SVN根目录语言包里的所有文件 2、汉化包没放在SVN根目录的语言文件夹下安装 3、SVN版本和汉化包版本不一致 首先看自己电脑上安装的svn是什么版本&#xff1a; 比如我的就是 TortoiseSVN 1.11.1&#xff0c;那我就要找TortoiseSVN 1.11.1对应的TortoiseSVN 1.11.1l…