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 写的一个简单的timer
Jul 30 Javascript
用方法封装javascript的new操作符(一)
Dec 25 Javascript
基于JQuery实现图片轮播效果(焦点图)
Feb 02 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
Vue中使用Sortable的示例代码
Apr 07 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
js实现一款简单踩白块小游戏(曾经很火)
Dec 02 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 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 和 MySQL 基础教程(一)
2006/10/09 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
javascript 实用的文字链提示框效果
2010/06/30 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
python实现合并两个数组的方法
2015/05/16 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
行政总经理岗位职责
2013/12/05 职场文书
教师求职信范文分享
2013/12/27 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
监察建议书范文
2014/03/12 职场文书
征婚广告词
2014/03/17 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
教师节活动总结
2014/08/29 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
教师远程研修感悟
2015/11/18 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers
为Centos安装指定版本的Docker
2022/04/01 Servers
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers