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制作的幻灯片图集效果打包下载
Feb 12 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
Bootstrap popover用法详解
Dec 22 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
详解angularjs获取元素以及angular.element()用法
Jul 25 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JQuery小知识
2010/10/15 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
初步剖析C语言编程中的结构体
2016/01/16 Python
python中函数传参详解
2016/07/03 Python
Django如何配置mysql数据库
2018/05/04 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
set在python里的含义和用法
2019/06/24 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
工会优秀工作者事迹
2014/08/17 职场文书
个人授权委托书样本
2014/09/13 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
2014年教务工作总结
2014/12/03 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
Python实现Hash算法
2022/03/18 Python