当前位置:   article > 正文

vue的axios封装_vue封装axios

vue封装axios

一、认识axios

此环节带领大家了解axios,如果熟练的同学可直接移步到下面的封装环节哦!

1、axios是什么?

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

2、为什么要用axios?

axios最大的亮点就是它支持了ES6里的 Promise Api,感兴趣的同学可以去看一看阮一峰写的 《ES6入门教程》,传送门:ES6入门教程

特性

从浏览器中创建 XMLHttpRequests

node.js 创建 http 请求

支持 Promise API

拦截请求和响应

转换请求数据和响应数据

取消请求

自动转换 JSON 数据

客户端支持防御 XSRF

二、封装axios

使用npm

$ npm install axios

使用yarn

$ yarn add axios
在src里面创建uitl文件并创建一个js文件
在这个js文件里面写axios封装
  1. import axios2 from "axios";
  2. import Vue from "vue";
  3. async function http2(options,withLoading = true) {
  4. options.headers = {Authorization:sessionStorage.getItem('token')};
  5. if (withLoading) Vue.prototype.$weiLoading.open(); //开启loading
  6. await new Promise(resolve => setTimeout(resolve,500));
  7. return axios2(options)
  8. .then(res => {
  9. if (res.status === 200) {
  10. let result = res.data;
  11. switch (result.code) {
  12. case 200:
  13. if (withLoading)Vue.prototype.$weiLoading.close();
  14. return result.data;
  15. case 199:
  16. case 500:
  17. case 401:
  18. sessionStorage.removeItem('token');
  19. sessionStorage.removeItem('name');
  20. if (!sessionStorage.removeItem('token')) {
  21. // Vue.prototype.$weiLoginAlert();
  22. // Vue.prototype.$weiAlert('登录已过期');
  23. }
  24. case 404:
  25. throw new Error(result.msg); // 有错,显示抛出异常直达下面的catch
  26. }
  27. } else {
  28. throw new Error(res.statusText);
  29. }
  30. })
  31. .catch(function (error) {
  32. if (withLoading) Vue.prototype.$weiLoading.close();
  33. // Vue.prototype.$weiAlert('登录已过期');
  34. return Promise.reject(error.message);
  35. })
  36. }
  37. export default http2;
在mian.js里面把https添加到vue的prototype里面

在src里面创建api文件并且创建一个index.js文件
在这个index.js文件里面写请求

最后在文件里面进入就可以用了

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号