vue 封装axios的api
**axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护。**
首先我们需要安装axios
npm i axios
然后我们需要定义一个js文件,用来封装(直接代码)
第一步 封装axios开放环境、拦截器以及请求方式
import axios from 'axios'
if ( process. env. NODE_ENV == 'development' ) {
axios. defaults. baseURL= '统一路径'
}
if ( process. env. NODE_ENV == 'production' ) {
axios. defaults. baseURL= '统一路径'
}
axios. defaults. timeout== 4000 ;
axios. interceptors. request. use (
config=> {
config. headers= { DeviceType: 'H5' }
return config
}
)
axios. interceptors. response. use ( response => {
return response
} , err => {
console. log ( err)
} )
export function get ( url, params) {
return new Promise ( ( resolve, reject) => {
axios. get (
url,
{
params: params
}
) . then ( res=> {
resolve ( res)
} ) . catch ( err=> {
reject ( err)
} )
} )
}
export function post ( url, params) {
return new Promise ( ( resolve, reject) => {
axios. post ( url, params) . then ( res=> {
resolve ( res. data)
} ) . catch ( err=> {
reject ( err. data)
} )
} )
}
第二步 单独管理请求路径
import { get , post} from '../http/http'
export function getBanner ( '参数' ) {
return get ( '请求路径' , 请求参数)
}
export function getList ( '参数' ) {
return post ( '请求路径' , '请求参数' )
}
} 在这里插入代码片
然后我们只需带组件中按需引入即可使用
< script>
import { getBanner, getList} from "文件路径/api.js" ;
export default {
async mounted: {
var banner = await getBanner ( )
console. log ( banner)
var list = await getList ( '请求参数' )
console. log ( list)
}
< / script>