详解vue中axios的封装


Posted in Javascript onJuly 18, 2018

第一步还是先下载axios

cnpm install axios -S

第二步建立一个htttp.js

import axios from 'axios';
import { Message } from 'element-ui';

axios.defaults.timeout = 5000;
axios.defaults.baseURL ='';


//http request 拦截器
axios.interceptors.request.use(
 config => {
  // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
  config.data = JSON.stringify(config.data);
  config.headers = {
   'Content-Type':'application/x-www-form-urlencoded'
  }
  // if(token){
  //  config.params = {'token':token}
  // }
  return config;
 },
 error => {
  return Promise.reject(err);
 }
);


//http response 拦截器
axios.interceptors.response.use(
 response => {
  if(response.data.errCode ==2){
   router.push({
    path:"/login",
    querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转
   })
  }
  return response;
 },
 error => {
  return Promise.reject(error)
 }
)


/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */

export function fetch(url,params={}){
 return new Promise((resolve,reject) => {
  axios.get(url,{
   params:params
  })
  .then(response => {
   resolve(response.data);
  })
  .catch(err => {
   reject(err)
  })
 })
}


/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */

 export function post(url,data = {}){
  return new Promise((resolve,reject) => {
   axios.post(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
  })
 }

 /**
 * 封装patch请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function patch(url,data = {}){
 return new Promise((resolve,reject) => {
  axios.patch(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
 })
}

 /**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function put(url,data = {}){
 return new Promise((resolve,reject) => {
  axios.put(url,data)
     .then(response => {
      resolve(response.data);
     },err => {
      reject(err)
     })
 })
}

第三步

在main.js中引入

import axios from 'axios'
import {post,fetch,patch,put} from './utils/http'
//定义全局变量
Vue.prototype.$post=post;
Vue.prototype.$fetch=fetch;
Vue.prototype.$patch=patch;
Vue.prototype.$put=put;

最后在组件里直接使用

mounted(){
  this.$fetch('/api/v2/movie/top250')
   .then((response) => {
    console.log(response)
   })
 },

其余的方法一样
Javascript 相关文章推荐
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
Apr 20 Javascript
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
纯js实现重发验证码按钮倒数功能
Apr 21 Javascript
举例讲解JavaScript中关于对象操作的相关知识
Nov 16 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
Javascript Function.prototype.bind详细分析
Dec 29 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
Node.js Event Loop各阶段讲解
Mar 08 Javascript
解决layer.prompt无效的问题
Sep 24 Javascript
JavaScript实现手风琴效果
Feb 18 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
Jul 18 #Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 #Javascript
使用Vue实现图片上传的三种方式
Jul 17 #Javascript
vue的token刷新处理的方法
Jul 17 #Javascript
vue 权限认证token的实现方法
Jul 17 #Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 #Javascript
详解webpack import()动态加载模块踩坑
Jul 17 #Javascript
You might like
第六节--访问属性和方法
2006/11/16 PHP
快速排序 php与javascript的不同之处
2011/02/22 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python程序中设置HTTP代理
2016/11/06 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
儿童学习python的一些小技巧
2018/05/27 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
详解django.contirb.auth-认证
2018/07/16 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
python中的测试框架
2020/11/13 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
先进事迹报告会主持词
2014/04/02 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
殡葬服务心得体会
2014/09/11 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS