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 相关文章推荐
JavaScript 学习笔记(十二) dom
Jan 21 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 jQuery
深入理解JavaScript和TypeScript中的class
Apr 22 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
Feb 21 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
vuex实现购物车的增加减少移除
Jun 28 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
google地图的路线实现代码
2009/08/20 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python 统计字数的思路详解
2018/05/08 Python
python中正则表达式与模式匹配
2019/05/07 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
英语专业推荐信
2013/11/16 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
个园导游词
2015/02/04 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python