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实现多级下拉框无刷新的联动
Dec 22 Javascript
jQuery获取对象简单实现方法小结
Oct 30 Javascript
JS控制表格实现一条光线流动分割行的方法
Mar 09 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
原生js实现类似fullpage的单页/全屏滚动
Jan 22 Javascript
JS简单判断函数是否存在的方法
Feb 13 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
如何基于viewport vm适配移动端页面
Nov 13 Javascript
JavaScript中的宏任务和微任务详情
Nov 27 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
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP闭包函数详解
2016/02/13 PHP
初识PHP中的Swoole
2016/04/05 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
js回调函数仿360开机
2019/12/26 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
python中as用法实例分析
2015/04/30 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
python使用多进程的实例详解
2018/09/19 Python
python reverse反转部分数组的实例
2018/12/13 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
C#公司笔试题
2014/03/28 面试题
大学生毕业鉴定
2014/01/31 职场文书
公司年会主持词
2014/03/22 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript