网络请求
与服务端请求使用axios网络请求库,Axios 是一个基于 promise 的网络请求库,可以用于浏览器和 node.js。
请求流程
封装axios后可以优雅的请求后端API,一个完整的前端交互到服务端处理流程是这样的:
- UI组件交互操作
- 通过统一管理的API对象列表
- 通过统一请求拦截
- 使用封装的请求库发送请求
- 等待服务端返回结果
- 结果处理
- 更新视图
统一API列表管理
为了方便管理和维护API接口地址,我们将所有的请求都放在 @/services 文件夹中,并且按照约定的对象格式编写API对象。 示例:
sh
src
├── services
├── account.ts
├── settings.ts
└── ...account.ts
ts
import request from "@/utils/request";
export const getMemberUserInfo = async () => {
try {
const res = await request.get<MemberManageLoginResponse>("/member/manage/login/reget");
return res.code === 1000 ? res.data : null;
} catch (error) {
console.log("getMemberUserInfo catch error.", error);
return null;
}
};统一的请求拦截
在每一次发送请求前,请求库都会有个钩子函数处理发送前的各类参数。比如在请求头部里添加Authorization。 相关配置在 @/utils/request.ts HTTP request 拦截器中。