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 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
Apr 26 Javascript
遍历DOM对象内的元素属性示例代码
Feb 08 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
JQuery入门基础小实例(1)
Sep 17 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 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+MSSQL分页的例子
2006/10/09 PHP
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
PHP经典面试题集锦
2015/03/19 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
smarty简单应用实例
2015/11/03 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python使用psutil模块获取系统状态
2016/08/27 Python
详解python的数字类型变量与其方法
2016/11/20 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
python 实现单例模式的5种方法
2020/09/23 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫