博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue2 axios 接口函数封装
阅读量:6243 次
发布时间:2019-06-22

本文共 2915 字,大约阅读时间需要 9 分钟。

封装 axios 工具,编辑 src/api/index.js 文件

首先,我们要使用 axios 工具,就必须先安装 axios 工具。执行下面的命令进行安装

npm install axios -D

这样,我们就安装好了 axios 工具了。

新建了一个 src/api/index.js

// 配置API接口地址var root = 'https://cnodejs.org/api/v1'// 引用axiosvar axios = require('axios')// 自定义判断元素类型JSfunction toType (obj) {  return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}// 参数过滤函数function filterNull (o) {  for (var key in o) {    if (o[key] === null) {      delete o[key]    }    if (toType(o[key]) === 'string') {      o[key] = o[key].trim()    } else if (toType(o[key]) === 'object') {      o[key] = filterNull(o[key])    } else if (toType(o[key]) === 'array') {      o[key] = filterNull(o[key])    }  }  return o}/*  接口处理函数*/function apiAxios (method, url, params, success, failure) {  if (params) {    params = filterNull(params)  }  axios({    method: method,    url: url,    data: method === 'POST' || method === 'PUT' ? params : null,    params: method === 'GET' || method === 'DELETE' ? params : null,    baseURL: root,    withCredentials: false  })  .then(function (res) {    if (res.data.success === true) {      if (success) {        success(res.data)      }    } else {      if (failure) {        failure(res.data)      } else {        window.alert('error: ' + JSON.stringify(res.data))      }    }  })  .catch(function (err) {    let res = err.response    if (err) {      window.alert('api error, HTTP CODE: ' + res.status)    }  })}// 返回在vue模板中的调用接口export default {  get: function (url, params, success, failure) {    return apiAxios('GET', url, params, success, failure)  },  post: function (url, params, success, failure) {    return apiAxios('POST', url, params, success, failure)  },  put: function (url, params, success, failure) {    return apiAxios('PUT', url, params, success, failure)  },  delete: function (url, params, success, failure) {    return apiAxios('DELETE', url, params, success, failure)  }}

好,我们写好这个文件之后,保存。

调整 main.js 绑定 api/index.js 文件

原始文件如下:

main.js

import Vue from 'vue'import App from './App'import router from './router'Vue.config.productionTip = false/* eslint-disable no-new */new Vue({  el: '#app',  router,  template: '
', components: { App }})

我们插入以下代码:

// 引用API文件import api from './api/index.js'// 将API方法绑定到全局Vue.prototype.$api = api

也就是讲代码调整为:

import Vue from 'vue'import App from './App'import router from './router'// 引用API文件import api from './api/index.js'// 将API方法绑定到全局Vue.prototype.$api = apiVue.config.productionTip = false/* eslint-disable no-new */new Vue({  el: '#app',  router,  template: '
', components: { App }})

好了,这样,我们就可以在项目中使用我们封装的 api 接口调用文件了。

测试一下看看能不能调通

我们来修改一下 src/page/index.vue 文件,将代码调整为以下代码:

好,这里是调用 cnodejs.org 的 topics 列表接口,并且将结果打印出来。

我们在浏览器中打开控制台,看看 console 下面有没有输出入下图一样的内容。如果有的话,就说明我们的接口配置已经成功了。

转载:http://blog.csdn.net/fungleo/article/details/77601270

转载于:https://www.cnblogs.com/crazycode2/p/7722236.html

你可能感兴趣的文章
算法学习之路|二分图的最大匹配—匈牙利算法(Dfs实现)
查看>>
iOS UIView高级动画 关键帧动画
查看>>
java版spring cloud+spring boot+redis多租户社交电子商务平台 (六)分布式配置中心(Spring Cloud Config)...
查看>>
一个初学者是如何制作移动端B站画友社区的
查看>>
互联网分布式微服务云平台规划分析--平台整体规划
查看>>
Swift对象转为C指针
查看>>
Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
查看>>
ThinkSNS系统升级,版本多样化
查看>>
ecshop使用smtp发送邮件
查看>>
RubyInstaller
查看>>
21. SQL -- TSQL架构,系统数据库,文件,SQL 认证,TSQL语句
查看>>
CentOS6.0添加163和epel源
查看>>
使用组策略与脚本发布Office 2010
查看>>
Open××× 分配固定IP
查看>>
elk+redis centos6.6安装与配置
查看>>
linux下svn命令大全
查看>>
windows server 2008 在vm上安装
查看>>
我的友情链接
查看>>
谷果等手机刷机build.prop解析
查看>>
Vbox虚拟机下 Linux网络配置
查看>>