Vue中Axios如何封装管理?本文详解

news/2024/7/10 1:39:07 标签: vue, web

Vue Axios 封装

 

定义

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

特性

  • 支持Promise API

  • 拦截请求和响应

  • 转换请求数据和响应数据

  • 自动转换JSON数据

  • 客户端支持 XRSF

回归正题

在Vue 项目开发中,我们与接口打交道最多了,如何来优雅的使用Axios变得尤为重要了。 通常我们通过客户端向后端发送请求来接收接口数据,然后将这些接口数据完美的呈现到网页上。

同时,与接口打交道那么就会用到网络请求,与 Vue 结合的网络请求库有哪些呢?

  • vue-resource
  • axios 官方推荐
  • fetch

本章将使用 axios 来完成接口的请求,以及对axios 请求的封装,来满足业务开发。

一次编写, 终身受用 😁
另外注意 :光理论是不够的。在此赠送2020最新企业级 Vue3.0/Js/ES6/TS/React/node等实战视频教程,想学的可进裙 519293536 免费获取,小白勿进哦!

开始

安装axios

yarn add axios

封装http.js

创建单独文件来封装axios,封装的同时,你需要和 后端 协商好一些约定,请求头 , 状态码请求超时时间.......

引入必要的UI 提示框, 不同的状态码,提示不同的响应,

请求头 : 来实现一些具体的业务,必须携带一些参数才可以请求(例如:会员业务)

状态码 : 根据接口返回的不同status , 来执行不同的业务,这块需要和后端约定好。

请求拦截器: 根据请求的请求头设定,来决定哪些请求可以访问。

响应拦截器: 这块就是根据 后端 返回来的状态码判定执行不同业务

 

 

完整代码

配置多域名请求不同URL

一般自己写项目时, 一个接口URL 就可以了。但在实际项目开发中,一个项目可能会请求不同的服务器的url,这时,我们简单的配置下访问接口域名,然后不同域名的接口,直接换对象调用即可,这样不管有多少个不同的接口,我们都可以很好的管理使用。

完整代码

到现在 axios 基本封装完成,可以满足你基本业务需求了

axios 封装完事了, 接下来就是封装单独的业务模块请求了,这块怎么划分 完全看个人风格,, 下面我会列出 两种

业务需求注意:

  • 必须引入 http.js axios
  • 必须引入 base.js 接口url
  • 必须在Vue 入口文件下,引入业务需求 api.js,并且将api挂载到Vue 原型上
  • 剩下就是写你对应的业务需求了

风格1

所有请求都写到一个api.js 文件下

完整代码

如何使用呢?

全局挂载api.js

业务组件调用


风格2

可以新建对应组件模块的文件来管理对应的 业务请求,这样接口出现问题,定位错误快,最后将不同的文件 引入到一个 api,js 里, 这样管理起来很方便。

 

如何使用呢?

 

 


封装 与 不封装对比

没有封装, 裸奔的Axios


最后

1.到现在,Axios基本封装完事了,也封装了业务模块的请求,基本上可以满足基本的业务需求了。如果项目还需要其它需求,还可以在原有的上面进行再次封装。

封装后,如果项目由接口域名有变动,执行调用base.js下的域名对象即可。
2.光理论是不够的。在此赠送2020最新企业级 Vue3.0/Js/ES6/TS/React/node等实战视频教程,想学的可进裙 519293536 免费获取,小白勿进哦!

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理


http://www.niftyadmin.cn/n/1603461.html

相关文章

字节跳动二面被血虐,狂补spring/并发/算法我又可以了

“去面试今日头条,你最好有点心理准备。我面试过头条的好兄弟给了我一句忠告”。 为了等到这一天,我前天排老长队理了个利落的发型,胡子刮得一干二净,好好捯饬自己一番。并且我认为自己准备很充分,但这次面结束之后&a…

Vue3 到底哪里好?和React Hook对比有啥有优势?本文详解

前言 这几天 Vue 3.0 Beta 版本发布了,本以为是皆大欢喜的一件事情,但是论坛里还是看到了很多反对的声音。主流的反对论点大概有如下几点: 意大利面代码结构吐槽:“太失望了。杂七杂八一堆丢在 setup 里,我还不如直接…

长为一名JAVA架构师2017-10-16 2

工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速…

Vue学习总结之Vue的生命周期是怎么运用操作的?本文详解

写在前面 1.每一篇文章都希望您有所收获,每一篇文章都希望您能静下心来浏览、阅读。每一篇文章都是作者精心打磨的作品。 2.如果您觉得二郎神杨戬有点东西的话,作者希望你可以帮我点亮那个点赞的按钮,对于二郎神杨戬这个暖男来说&#xff0…

互联网分层架构,为啥要前后端分离?

通用业务服务化之后,系统的典型后端结构如上: web-server通过RPC接口,从通用业务服务获取数据 biz-service通过RPC接口,从多个基础数据service获取数据 基础数据service通过DAO,从独立db/cache获取数据 db/cache存储…

如何用JavaScriptJ封装拖动验证滑块?本文教你

前言 星期六闲着没事,就想着写写原生js玩玩,在网上看了几个效果后决定做这个效果,并且使用了prototype和eventEmitter封装成了库。 最终效果 分析 1.看到这个效果我们首先应该想到和拖动有关的api: onmousedown, onmousemove, onmouseup …

程序员阿里三次面试已过却无理由挂了,网友:阿里HR有一票否决

进入互联网大厂一般都是“过五关斩六将”,难度堪比西天取经,但当你真正面对这些大厂的面试时,有时候又会被其中的神操作弄的很是蒙圈。 近日,某位程序员发帖称,自己去阿里面试,三面都过了,却被无…

2020最新中级web前端面试题库(含详细答案,15k级别)你会几道呢?

前言 1.本篇文章,献给我家女朋友,祝她在杭州找一个965的好公司! 2.除了面试题。结合多年开发经验整理出2020最新企业级实战视频教程, 包括 Vue3.0/Js/ES6/TS/React/node等想学的可进裙 519293536 免费获取,小白勿进哦…