每个项目网络请求接口封装都是很重要的一块,第一次做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 = '请求头'
(3).封装get方法
export function getHttp (url, params = {}) {// 创建动画mint-uiIndicator.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//请求返回数据})

vue项目中axios请求网络接口封装相关推荐

  1. vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园

    在开发vue项目中,请求是不可缺少的,在发送请求时常常需要统一处理一些请求头参数等设置与响应事件,这时利用请求拦截器再好不过. 这里以axios请求为例 实现了设置统一请求头添加token, 其中to ...

  2. vue项目中 axios 请求成功 却进入catch中

    这个算是线上的一个小问题吧 就是我本来打算对接口返回的数据进行统一处理. 发现有的请求 成功后并没有走 Promise.then的方法中, 像这种情况的话 网上网友的有的说是我的then的方法里面 有 ...

  3. vue中axios请求的封装

    axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中, 也是vue官方推荐使用的http库:封装axios,一方面为了以后维护方便,另一方面也可以 ...

  4. axios与ajax对比,vue体系中axios请求对比jquery-ajax请求

    前提 老旧的项目在前端页面转型为vue框架的时候都应该会思考一个问题: 在请求上是继续沿用以前的jquery-ajax,还是改用与vue搭配的axios 如果你继续使用jquery-ajax那么以下的 ...

  5. Vue项目中前端请求后端数据的两种方式

    1.JS方式,使用fetch函数,较底层 //JS方式请求分页数据 fetch("http://localhost:9090/user/page?pageNum=" +this.p ...

  6. vue项目中axios的封装

    1.安装 1 npm install axios --save 2.新建http.js,封装拦截器以及多种请求方式 1 import axios from 'axios'; 2 import { Me ...

  7. vue项目中axios配置(代理配置)

    一.引入axios包 npm install sxios --save 二.建立axios文件夹 在src根目录下新建api文件夹 在api文件夹下新建ajax.js和index.js文件 ajax. ...

  8. vue项目中使用ckplayer.js封装视频播放组件

    1.在index.html中引入ckplayer.js <script src="ckplayer/ckplayer.js" charset="utf-8" ...

  9. 在vue项目中对axios进行封装

    在vue项目中对axios进行封装 1.引入axios,qs模块 import axios from 'axios'; import Qs from "qs"; import st ...

  10. 在vue项目中:统一封装 Axios 接口与异常处理

    在vue项目中:统一封装 Axios 接口与异常处理 参考文章: (1)在vue项目中:统一封装 Axios 接口与异常处理 (2)https://www.cnblogs.com/itgezhu/p/ ...

最新文章

  1. 市政管网检测机器人收费标准_管道无损CCTV检测:复杂的地下管网工作,其实可以交给机器人来做...
  2. 通俗理解并行性和并发性的区别
  3. bash shell实现二进制与十进制数的互转
  4. win8中离线安装net framework 3.5
  5. 二维数组的传参数的方法
  6. 【错误记录】Groovy 工程编译报错 ( java.lang.NoClassDefFoundError: org/apache/tools/ant/util/ReaderInputStream )
  7. 036_jQuery Ajax全局回调函数
  8. SpringBoot中整合使用Freemarker
  9. C语言为四维数组申请动态内存空间的方法(一)
  10. 易语言下载别人的源码编译出来用不了_我是如何阅读源码的
  11. 二叉树翻转(递归 + 非递归)
  12. CPU数据总线和地址总线 内存和外存
  13. 今天你的人生做减法了吗?
  14. 简约黑板擦特效表白网源码
  15. c++ 控制台游戏打砖块
  16. 教你来使用雪碧图(CSS sprite)
  17. noip模拟赛 斐波那契
  18. mysql视图 实验报告_数据库实验报告(视图).doc
  19. SpringBoot基于若依项目工时统计成本核算管理源码带文字教程
  20. 算法笔记(六)多尺度特征融合之FPN/PANet

热门文章

  1. H264 SPS分析
  2. html页面搜索文章标题,html-文章页面中的H1-网站标题还是文章标题?
  3. python 爬虫 爬取糗事百科段子
  4. 题目399-整除个数(满满的套路)
  5. markdown语法中一些数学符号怎么打
  6. sqlite如何与mysql连接数据库连接_c#中怎么连接到sqlite数据库?
  7. oracle like 前缀,algorithm – 在ORACLE中搜索最长前缀的最快方法
  8. php如何查看端口有没被占用,如何查看某个端口被谁占用
  9. centos7 go yum 安装_Centos7.6从头开始安装nvidiadocker
  10. DHML+XML+CSS 技术汇总