vue项目中axios的封装

1.安装

1 npm install axios --save

2.新建http.js,封装拦截器以及多种请求方式

 1 import axios from 'axios';
 2 import { Message } from 'element-ui';
 3 
 4 // 请求拦截器
 5 axios.interceptors.request.use( 
 6   config => {
 7     //发送请求前需要做什么,一般检查token
 8     return config;
 9   },
10 
11   error => {
12    // 对请求错误做些什么
13     return Promise.reject(error);
14   }
15 )
16 
17 // 响应拦截器
18 axios.interceptors.response.use(
19   response => {
20     // 对响应数据做点什么,一般是判断状态码,进行一些逻辑处理
21     return response;
22   },
23   error => {
24     // 对响应错误做点什么
25     return Promise.reject(error) ;
26   };
27 )
28 
29 //GET请求
30 export const $get = function (url, params) {
31   return new Promise((resolve, reject) => {
32     axios({
33       method: 'get',//请求方式
34       url: url,         //请求url
35       headers:...   //请求头设置,
36       params,      //请求参数
37       baseURL: ...//基础地址,将自动加在 `url` 前面
38     }).then(res => {
39       resolve(res)
40     }).catch(error => {
41       reject(error)
42     })
43   })
44 }
45 
46 //POST请求
47 export const $post = function (url, param) {
48   return new Promise((resolve, reject) => {
49     axios({
50       method: 'post',
51       url: url,
52       headers: ...,
53       data: param ? param : "", //数据体
54       baseURL: ...
55     }).then(res => {
56       resolve(res)
57     }).catch(error => {
58       reject(error)
59     })
60   })
61 }
62 
63 //DELETE请求
64 export const $delete = function (url, params) {
65   return new Promise((resolve, reject) => {
66     axios({
67       method: 'delete',
68       url: url,
69       headers: ...,
70       params,
71       baseURL: ...
72     }).then(res => {
73       resolve(res)
74     }).catch(error => {
75       reject(error)
76     })
77   })
78 }
79 
80 //PUT请求
81 export const $put = function (url, params) {
82   return new Promise((resolve, reject) => {
83     axios({
84       method: 'put',
85       url: url,
86       headers: ...,
87       data: params ? params : "",
88       baseURL: ...
89     }).then(res => {
90       resolve(res)
91     }).catch(error => {
92       reject(error)
93     })
94   })
95 }
View Code

3.接口的封装---新建user.js

 1 //导入请求方式
 2 import {
 3   $get,
 4   $post,
 5   $update,
 6   $delete
 7 } from '../http'; 
 8 
 9 //获取用户信息接口
10 const getUser = data => {
11   return $get('/api/getUserInfo', data);
12 };
13 
14 //其他接口类似
15 ....
16 ....
17 ....
18 
19 //导出接口
20 export default {
21 getUser,
22 ...,
23 ...
24 }

4.封装所有接口文件---创建index.js

1 //导入接口文件
2 import user from './user'
3 
4 //导出
5 export default {
6   user,
7   ...,
8   ...
9 }

5.axios的所有内容封装(该index.js即为下图目录结构选中的js文件)

目录结构

6.在组件中的使用

 1 methods:{
 2     //方法的调用,传入数据
 3     getUser(){
 4          this.$api.user.getUser({userId:100010})
 5             .then(
 6                 res=>{
 7                 //请求结果,进行相应的逻辑处理
 8                 },
 9                 error=>{
10                 //请求失败后的逻辑处理
11                 })
12       }    
13 }            

 

转载于:https://www.cnblogs.com/yy136/p/9855039.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2022】Java基础面试真题

文章目录1. Java基础1.1 为什么Java代码可以实现一次编写、到处运行?1.2 一个Java文件里可以有多个类吗(不含内部类)?1.3 说一说你对Java访问权限的了解1.4 介绍一下Java的数据类型1.5 int类型的数据范围是多少?1.6 请…

IntelliJ IDEA 中 右键新建时,选项没有Java class的解决方法和具体解释

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我是在别人问我的时候,才发现还可以有这个问题,主要是他新项目直接打开,什么都没配置,就打…

设计模式大集锦 程序员面试全攻略

摘要:无论你是参与Java面试还是C#面试,设计模式和软件设计问题在程序员面试中是必不可少的一部分。编程和设计技两者相得益彰,一名出色的程序员也是一名出色的设计师,他们懂得如何利用代码来解决问题或者软件设计,但是…

【2022】多线程并发编程面试真题

文章目录4. 多线程4.1 创建线程有哪几种方式?4.2 说说Thread类的常用方法4.3 run()和start()有什么区别?4.4 线程是否可以重复启动,会有什么后果?4.5 介绍一下线程的生命周期4.6 如何实现线程同步?4.7 说一说Java多线程…

苹果面试8大难题及答案

摘要:苹果这样的公司通常会在面试过程中向求职者抛出一些逻辑的问题来考研面试者,所以,如果你对进入苹果感兴趣,或者向往类似的公司,又或者只是对逻辑问题感兴趣,这些面试难题值得你仔细研究。 导读&#x…

ROS系统玩转自主移动机器人(3)-- 开源机器人结构介绍

ROS系统玩转自主移动机器人(3)-- 开源机器人结构介绍 本机器人机械结构设计相关的所有设计文件下载地址为:传送门 其中包含:三维造型设计文件(所有零件装配效果)(tips:基于Solidwork…

【2022】JVM常见面试真题详解

文章目录5. JVM5.1 JVM包含哪几部分?5.2 JVM是如何运行的?5.3 Java程序是怎么运行的?5.4 本地方法栈有什么用?5.5 没有程序计数器会怎么样?5.6 说一说Java的内存分布情况5.7 类存放在哪里?5.8 局部变量存放…

如何在面试时写出高质量的代码

摘要:有些程序员由于平时没有养成良好的编程习惯,在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂。如何在面试时能写出高质量的代码,是很多程序员关心的问题。 程序员在职业生涯中难免要接受编程面试。有些程序…

IntelliJ IDEA添加jar包

见:http://blog.csdn.net/a153375250/article/details/50851049 以JDBC-MySQL驱动包为例 1、在IntelliJ IDEA中打开要添加jar包的Project 2、File – Project Structure如下图 3、选择Moudules – 再选择Dependencies如下图 4、选中Moudule source – 然后点击2处号…

Python3 与 C# 并发编程之~ 进程篇

上次说了很多Linux下进程相关知识,这边不再复述,下面来说说Python的并发编程,如有错误欢迎提出~ 如果遇到听不懂的可以看上一次的文章:https://www.cnblogs.com/dotnetcrazy/p/9363810.html 官方文档:https…

Spring全家桶面试真题

文章目录1. Spring Boot1.1 说说你对Spring Boot的理解1.2 Spring Boot Starter有什么用?1.3 介绍Spring Boot的启动流程1.4 Spring Boot项目是如何导入包的?1.5 请描述Spring Boot自动装配的过程1.6 说说你对Spring Boot注解的了解2. Spring2.1 请你说说…

WSDL测试webservice接口记录

收到一个事情,需要对接第三方API,对方给了个service,看了一下,原来是webservices的。 上一次测试webervice的接口,还是至少八九年前的时候了,这种相对比较老旧的也好久不在使用。 于是,简单搞了…

idea窗口下方滚动条不明显设置

在使用idea时,下方的滚动条老是显示不明显,每次点击拖拽都很费劲,在网上找了很多相关设置,最后确定了一个最好的办法解决问题: Shift (上档) 鼠标滚动,这样就可以横向翻滚了&#…

把握本质规律——《数学之美》作者吴军

无论是互联网,还是手机、电视,现代通信都遵循信息论的规律,整个信息论的基础都是数学。搜索引擎、语音识别、机器翻译也都是我们生活中离不开的技术,数学也是解决这些问题的最好工具。在《浪潮之巅》出版后,吴军将蕴含…

Hibernate4 注解方法说明

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.类级别注解 Entity 映射实体类 Table 映射数句库表 Entity(name"tableName") - 必须,注解将一个类声明…

消息队列常见面试题

文章目录2. 消息队列2.1 MQ有什么用?2.2 说一说生产者与消费者模式2.3 消息队列如何保证顺序消费?2.4 消息队列如何保证消息不丢?2.5 消息队列如何保证不重复消费?2.6 MQ处理消息失败了怎么办?2.7 请介绍消息队列推和拉…

Mybatis 详解--- 一级缓存、二级缓存

2019独角兽企业重金招聘Python工程师标准>>> Mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解: ①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(Hash…

Redis常见面试题详解

文章目录1. Redis1.1 Redis可以用来做什么?1.2 Redis和传统的关系型数据库有什么不同?1.3 Redis有哪些数据类型?1.4 Redis是单线程的,为什么还能这么快?1.5 Redis在持久化时fork出一个子进程,这时已经有两个…

IntelliJ 创建main函数、for循环、输出语句快捷键

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有for循环,System.out.println(); 在编写代码的时候直接…

CentOS新增用户并授予sudo权限

2019独角兽企业重金招聘Python工程师标准>>> 新增用户 添加用户useradd demo设置用户密码passwd demo授予sudo权限 输入以下命令,编辑sudoers配置:visudo找到以下行root ALL(ALL) ALL增加以下内容:demo ALL(ALL) ALL保存后登录dem…