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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
javascript之锁定表格栏位
Jun 29 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
js时钟翻牌效果实现代码分享
Jul 31 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
layui table设置某一行的字体颜色方法
Sep 05 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 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即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
php获取远程文件大小
2015/10/20 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
php实现微信支付之企业付款
2018/05/30 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
google地图的路线实现代码
2009/08/20 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
13个PHP函数超实用
2015/10/21 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Python实现k-means算法
2018/02/23 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
Java程序员面试题
2013/07/15 面试题
自我评价如何写好?
2014/01/05 职场文书
秋季运动会加油稿200字
2014/01/11 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
百日宴上的祝酒词
2015/08/10 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
Python中rapidjson参数校验实现
2021/07/25 Python
Python数据处理的三个实用技巧分享
2022/04/01 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL