vue项目中api接口管理总结


Posted in Javascript onApril 20, 2018

默认vue项目中已经使用vue-cli生成,安装axios,基于element-ui开发,axiosconfig目录和api目录是同级,主要记录配置的相关。

1. 在axiosconfig目录下的axiosConfig.js

import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'
import { Message, Loading } from 'element-ui'
// 响应时间
axios.defaults.timeout = 5 * 1000
// 配置cookie
// axios.defaults.withCredentials = true
// 配置请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
// 静态资源
Vue.prototype.$static = ''

// 配置接口地址
axios.defaults.baseURL = ''
var loadingInstance
// POST传参序列化(添加请求拦截器)
axios.interceptors.request.use(
 config => {
  loadingInstance = Loading.service({
   lock: true,
   text: '数据加载中,请稍后...',
   spinner: 'el-icon-loading',
   background: 'rgba(0, 0, 0, 0.7)'
  })
  if (config.method === 'post') {
   config.data = qs.stringify(config.data)
  }
  return config
 },
 err => {
  loadingInstance.close()
  Message.error('请求错误')
  return Promise.reject(err)
 }
)
// 返回状态判断(添加响应拦截器)
axios.interceptors.response.use(
 res => {
  if (res.data.code === 200) {
   loadingInstance.close()
   return res
  } else {
   loadingInstance.close()
   Message.error(res.data.msg)
  }
 },
 err => {
  loadingInstance.close()
  Message.error('请求失败,请稍后再试')
  return Promise.reject(err)
 }
)
// 发送请求
export function post (url, params) {
 return new Promise((resolve, reject) => {
  axios
   .post(url, params)
   .then(
    res => {
     resolve(res.data)
    },
    err => {
     reject(err.data)
    }
   )
   .catch(err => {
    reject(err.data)
   })
 })
}
export function get (url, params) {
 return new Promise((resolve, reject) => {
  axios
   .get(url, {
    params: params
   })
   .then(res => {
    resolve(res.data)
   })
   .catch(err => {
    reject(err.data)
   })
 })
}

2. 在api目录下的index.js,api1.js,api2.js

api1.js
import { post } from '../axiosconfig/'
export default {
  login(params) {
    return post('/users/api/login', params)
  }
}
api2.js
import { post } from '../axiosconfig/'
export default {
  regist(params) {
    return post('/users/api/regist', params)
  }
}
index.js
import user from './api1.js'
import active from './api2.js'
export default {
 api1,
 api2
}

3. main.js 配置

import api from './api/'
Vue.prototype.$api = api

4. 在组件中使用

登录组件中
doLongin() {
 let params={}
 this.$api.api1.login(params).then(res => {
  console.log(res)
 })
}
注册组件中
doRegist() {
 let params={}
 this.$api.api2.regist(params).then(res => {
  console.log(res)
 })
}
Javascript 相关文章推荐
javascript中巧用“闭包”实现程序的暂停执行功能
Apr 04 Javascript
JavaScript null和undefined区别分析
Oct 14 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
完美实现bootstrap分页查询
Dec 09 Javascript
利用Angularjs和Bootstrap前端开发案例实战
Aug 27 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
Sep 25 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
详解Vue路由自动注入实践
Apr 17 Javascript
详解微信小程序之一键复制到剪切板
Apr 24 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 #jQuery
js Element Traversal规范中的元素遍历方法
Apr 19 #Javascript
关于vue中的ajax请求和axios包问题
Apr 19 #Javascript
详解vue 数据传递的方法
Apr 19 #Javascript
Vue 去除路径中的#号
Apr 19 #Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
Apr 19 #Javascript
基于JS实现html中placeholder属性提示文字效果示例
Apr 19 #Javascript
You might like
加速XP搜索功能堪比vista
2007/03/22 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php表单提交实例讲解
2015/11/12 PHP
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
详解ES6中的let命令
2020/04/05 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
详解python中@的用法
2019/03/27 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Python实现动态循环输出文字功能
2020/05/07 Python
python中if及if-else如何使用
2020/06/02 Python
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
房屋出售授权委托书
2014/10/12 职场文书
高中同学会致辞
2015/08/01 职场文书
2016年校长新年寄语
2015/08/17 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
八年级作文之友谊
2019/12/02 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
Python函数对象与闭包函数
2022/04/13 Python