Vue中API接口如何二次封装Axios进行高效开发
时间:2023-8-2 09:36 作者:小诸葛 分类: Vue 正在检查是否收录...
1.src目录下新建 utlis文件夹 ->axios.ts
引入axios插件,创建公共服务器IP ,设置请求拦截器和相应拦截器,最后暴露出去
import axios from "axios"
export const SERVER_IP = 'http://XXXXXX/'
export const request = axios.create({
baseURL: SERVER_IP,
timeout: 6000,
})
//请求拦截器
request.interceptors.request.use()
//相应拦截器
request.interceptors.response.use()
2.src目录下创建 apis文件夹->里面存储分类接口例如用户接口,登录接口:login.ts
引入封装的axios,进行接口的一个封装,然后暴露出去
import { SERVER_IP, request } from '../utlis/axios'
import type { Login } from './interface'
// 登录接口
export const $_checkLogin = (data: Login) => {
return request({
url: '/users/checkLogin',
method: 'POST',
data
})
}
//获取列表
export const $_UsersList = (params: userList) => {
return request({
url: '/users/list',
method: 'GET',
params
})
}
3.在需要使用接口的页面只需调用封装的api也就是apis文件夹里面的文件例如:login.ts
<script lang="ts" setup>
import { reactive } from 'vue';
import { $_checkLogin } from '../apis/login'
let form = reactive({
account: '',
password: ''
});
let onSubmit = () => {
$_checkLogin(form).then(res => {
//请求成功之后操作
})
}
</script>
封装的好处方便我们后期维护管理API,如果吧api直接在写每个页面进行直接发请求,文件多起来了,就变的难以维护,如果用到了相同的请求也会造成代码冗余度过高。
封装之后对接口统一进行管理,更方便直观的查看API和维护,也降低了代码冗余度,和可读性。
以上示例都是基于Vue3+Ts写的,用Vue2+JS封装流程也是一样,只是不需要reactive这种响应式
推荐阅读:
扫描二维码,在手机上阅读