vue如何实现接口统一管理

 更新时间:2022年09月21日 14:37:48   作者:酷jjs  
这篇文章主要介绍了vue如何实现接口统一管理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue接口统一管理

1.在src文件夹下面新建api文件夹,新建api.js

// let apiUrl = 'http://192.168.8.134:8081';
let apiUrl = '/apiapi';
let API={
		api:{
			
			//应用表
			applist:apiUrl+'/app/list',    //查询应用列表
			appadd:apiUrl+'/app/add',      //新增应用列表
			appdelete:apiUrl+'/app/delete',    //删除应用列表
			appupdate:apiUrl+'/add/update',    //修改应用列表			
		},
	
} 
 
export default {
    API: API,
}

2.在main.js引用

import api from './api/api'
Vue.prototype.API1url=api;

3.在vue中使用

vue中api接口管理总结

默认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)
 })
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用md5在vue中的axios请求时加密API问题

    使用md5在vue中的axios请求时加密API问题

    这篇文章主要介绍了使用md5在vue中的axios请求时加密API问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Vue强制组件重新渲染的方法讨论

    Vue强制组件重新渲染的方法讨论

    这篇文章给大家详细介绍了Vue强制组件重新渲染的正确方法,非常的实用,有需要的小伙伴可以参考下
    2020-02-02
  • vue3使用富文本编辑器Editor.js的简单方法

    vue3使用富文本编辑器Editor.js的简单方法

    Editor.js是一个用于构建具有完全可定制化块结构的现代编辑器的开源库,它提供了一个简洁、可扩展和易于使用的接口,使开发人员能够创建拥有丰富内容和互动性的编辑器,这篇文章主要给大家介绍了关于vue3使用富文本编辑器Editor.js的简单方法,需要的朋友可以参考下
    2024-04-04
  • iview中Select 选择器多选校验方法

    iview中Select 选择器多选校验方法

    下面小编就为大家分享一篇iview中Select 选择器多选校验方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue中this.$set()的基本用法实例

    vue中this.$set()的基本用法实例

    最近工作上经常操作数组数据,并且要求实时更新视图数据,这个时候首先想到的是 vue.set(),下面这篇文章主要给大家介绍了关于vue中this.$set()的基本用法实例,需要的朋友可以参考下
    2023-01-01
  • 深入了解vue中一键复制功能的实现

    深入了解vue中一键复制功能的实现

    在现代的Web应用中,用户体验至关重要,而提供简单易用的复制功能是改善用户体验的一项关键功能,本文将为大家详细介绍Vue实现一键复制功能的具体方法,需要的可以参考下
    2023-11-11
  • axios进阶实践之利用最优雅的方式写ajax请求

    axios进阶实践之利用最优雅的方式写ajax请求

    之前给大家介绍了jQuery利用最优雅的方式写ajax请求的相关内容,这篇文章主要给大家介绍了关于axios进阶实践之利用最优雅的方式写ajax请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-12-12
  • vue数组双向绑定问题及$set用法说明

    vue数组双向绑定问题及$set用法说明

    这篇文章主要介绍了vue数组双向绑定问题及$set用法说明,具有很好的参考价值,希望大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 基于vue.js实现购物车

    基于vue.js实现购物车

    这篇文章主要为大家详细介绍了基于vue.js实现购物车,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 浅谈在vue-cli3项目中解决动态引入图片img404的问题

    浅谈在vue-cli3项目中解决动态引入图片img404的问题

    这篇文章主要介绍了浅谈在vue-cli3项目中解决动态引入图片img404的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08

最新评论