视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
怎样对vue项目api接口进行管理
2020-11-27 19:40:02 责编:小采
文档

这次给大家带来怎样对vue项目api接口进行管理,对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)
 })
}

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

怎样在项目中使用JS装饰器函数

怎样操作echarts节点显示动态数据

下载本文
显示全文
专题