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 相关文章推荐
JS实现商品倒计时实现代码
May 03 Javascript
JavaScript中使用Substring删除字符串最后一个字符
Nov 03 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
微信WeixinJSBridge API使用实例
May 25 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
Jan 13 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
编写一个javascript元循环求值器的方法
Apr 14 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
Jul 22 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
thinkPHP查询方式小结
2016/01/09 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
JS的数组迭代方法
2015/02/05 Javascript
cookie的secure属性详解
2015/04/08 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
Augularjs-起步详解
2016/07/08 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
在Python中进行自动化单元测试的教程
2015/04/15 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python get获取页面cookie代码实例
2018/09/12 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python decimal模块使用方法详解
2020/06/08 Python
详解python with 上下文管理器
2020/09/02 Python
Pycharm安装python库的方法
2020/11/24 Python
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
四川成都导游欢迎词
2014/01/18 职场文书
法律顾问服务方案
2014/05/15 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android