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 相关文章推荐
一段实时更新的时间代码
Jul 07 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
CSS3 media queries结合jQuery实现响应式导航
Sep 30 Javascript
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 Javascript
微信小程序实现时间进度条功能
Nov 17 Javascript
ECharts transform数据转换和dataZoom在项目中使用
Dec 24 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生成自定义长度随机字符串的函数分享
2014/05/04 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
javascript String 对象
2008/04/25 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
python购物车程序简单代码
2018/04/18 Python
python实现简单名片管理系统
2018/11/30 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
python爬虫容易学吗
2020/06/02 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
市场总经理岗位职责
2014/04/11 职场文书
红色影片观后感
2015/06/18 职场文书
政审证明范文
2015/06/19 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
个人道歉信大全
2019/04/11 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
Java线程的6种状态与生命周期
2022/05/11 Java/Android