vue项目中axios请求网络接口封装的示例代码


Posted in Javascript onDecember 18, 2018

每个项目网络请求接口封装都是很重要的一块,第一次做Vue项目,我们的封装方法如下:

(1).新建一个js文件,取名api.js

(2).引入 axios ,mint-UI ,如下图:

import axios from 'axios'
import {MessageBox, Toast} from 'mint-ui'

axios.defaults.timeout = 50000//默认请求超时时间
axios.defaults.headers = '请求头'

(2).封装get方法

export function getHttp (url, params = {}) {
 // 创建动画mint-ui
 Indicator.open({
 text: '加载中...',
 spinnerType: 'fading-circle'
 })
 return new Promise((resolve, reject) => {
 axios.get(url, {
  params: params
 })
  .then(response => {
  resolve(response.data)
   Indicator.close() // // 关闭动画
  })
  .catch(err => {
  reject(err)
   Indicator.close() // // 关闭动画
  MessageBox.alert('message', err)
  })
 })
}

(4).封装post方法

export function postHttp (url, data = {}) {
 Indicator.open({
 text: '加载中...',
 spinnerType: 'fading-circle'
 })
 return new Promise((resolve, reject) => {
 axios.post(url, data)
  .then(response => {
  if (response.data.status == 1) {
   resolve(response.data)
  } else {
   Toast(response.data.msg)
  }
  Indicator.close() // // 关闭动画
  }, (err) => {
  reject(err)
  Indicator.close()
  })
 })
}

(5).封装后方法的使用

在main.js中引入全局变量

import {getHttp, postHttp} from './config/api'
Vue.prototype.$getHttp = getHttp
Vue.prototype.$postHttp = postHttp
//get网络请求
  this.$getHttp(this.$shopUrl + 'api/product/list',)
  .then((response) => {
   response.result//请求返回数据
  })

 // post网络请求

  this.$postHttp(this.$shopUrl + 'api/product/list',)
  .then((response) => {
   response.result//请求返回数据
  })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
$.ajax json数据传递方法
Nov 19 Javascript
Javascript 圆角div的实现代码
Oct 15 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
一款简单的jQuery图片标注效果附源码下载
Mar 22 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
javaScript中"=="和"==="的区别详解
Mar 16 Javascript
layui 中select下拉change事件失效的解决方法
Sep 20 Javascript
深入理解javascript中的this
Feb 08 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 #Javascript
vue 表单验证按钮事件交由父组件触发的方法
Dec 17 #Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
Dec 17 #Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 #Javascript
详解Vue This$Store总结
Dec 17 #Javascript
vue + element-ui的分页问题实现
Dec 17 #Javascript
Vue 中的受控与非受控组件的实现
Dec 17 #Javascript
You might like
php include,include_once,require,require_once
2008/09/05 PHP
php递归创建目录的方法
2015/02/02 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
js动态为代码着色显示行号
2013/05/29 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
微信小程序实现选项卡功能
2020/06/19 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
python进阶教程之循环对象
2014/08/30 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
Python之变量类型和if判断方式
2020/05/05 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
爱国卫生月活动总结范文
2014/04/25 职场文书
销售类求职信
2014/06/13 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
运动会加油稿
2015/07/22 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
Python基础之函数嵌套知识总结
2021/05/23 Python