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 相关文章推荐
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
JS与C#编码解码
Dec 03 Javascript
js获取当前页面路径示例讲解
Jan 08 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
深入了解JavaScript 防抖和节流
Sep 12 Javascript
JS实现“全选”和"全不选"功能代码实例
Feb 06 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
Apr 21 Javascript
原生js实现轮播图特效
May 04 Javascript
vue实现五子棋游戏
May 28 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 HTML代码串 截取实现代码
2009/06/29 PHP
PHP 强制下载文件代码
2010/10/24 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
javascript简易画板开发
2020/04/12 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
python安装twisted的问题解析
2018/08/21 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
Mac安装python3的方法步骤
2019/08/09 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
中软Java笔试题
2012/11/11 面试题
文史专业毕业生自荐信
2013/11/17 职场文书
应届大学生自荐书
2014/06/17 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
高三英语教学计划
2015/01/23 职场文书
大学生学年个人总结
2015/02/15 职场文书
门球健将观后感
2015/06/16 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
python实现会员管理系统
2022/03/18 Python