이번에는 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
登录组件中
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)
})
}
추천 자료:
프로젝트에서 JS 데코레이터 기능을 사용하는 방법echarts 노드를 작동하여 동적 데이터를 표시하는 방법위 내용은 Vue 프로젝트 API 인터페이스를 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!