620 字
3 分钟

(axios的post方法)统一管理项目用户相关的 HTTP 接口

欢迎来到我的博客!#

使用 Markdown 格式编写。

今天学到了什么#

  • axios的post方法
  • 统一管理项目用户相关的 HTTP 接口

统一管理咱们项目用户相关的 HTTP 接口#

这行:

export const reqLogin = (data: loginFormData) =>
request.post<any, loginResponseData>(API.LOGIN_URL, data)

它返回的只是一个 Promise。

也就是:

const p = reqLogin({ username: 'admin', password: '111111' })

这里的 p 是 Promise,不是最终数据。


正确用法#

方式 1:then#

reqLogin({ username: 'admin', password: '111111' }).then((res) => {
console.log(res)
})

方式 2:await#

const res = await reqLogin({ username: 'admin', password: '111111' })
console.log(res)

“变量接收返回值 Promise,然后再用变量.then”是对的#

例如:

const p = reqLogin(data)
p.then((res) => {
console.log(res)
})

这和下面这句是等价的:

reqLogin(data).then((res) => {
console.log(res)
})

重点理解#

reqLogin 这个函数本身并不是“直接返回最终数据”,而是:

  • 发起请求
  • 返回 Promise
  • 当请求成功时,Promise 解析值才是后台返回的数据

所以调用它之后,必须“继续处理 Promise”。


一句总结#

对,reqLogin() 返回的是 Promise;你要用变量接收它,再用 .then()await 去拿最终结果。

统一管理的好处#

目的#

“统一管理用户相关接口”就是把和用户模块有关的请求都集中放在一个文件里,方便维护和复用。

比如在 src/api/user/index.ts 里,集中管理了:

  • 登录接口
  • 获取用户信息接口
  • 退出登录接口

这样做的好处有几个:


1) 便于管理#

所有用户模块的请求都在一个地方,后面修改接口地址、参数、返回格式时,不需要到各个页面里找。


2) 便于复用#

页面组件只需要调用:

reqLogin(data)
reqUserInfo()
reqLogout()

不用重复写 axios.post(...) 这种代码。


3) 结构更清晰#

比如登录页、个人中心、菜单权限等页面,都直接用统一的接口方法,不会散落在各个组件里,代码更容易维护。


4) 方便统一处理#

比如你后面想统一加:

  • 请求头
  • 统一错误处理
  • 统一 token
  • 统一 baseURL

都可以在请求封装层处理,不需要每个页面单独写。


例子#

如果没有统一管理,页面里可能会写:

axios.post('/user/login', data)
axios.get('/user/info')
axios.post('/user/logout')

分散在很多页面。

统一后,就变成:

reqLogin(data)
reqUserInfo()
reqLogout()

更清晰,也更容易维护。


说白了#

这一个文件的作用就是:

“把用户相关的所有 HTTP 请求封装成方法,给其他页面统一调用”。


赞助支持

如果这篇文章对你有帮助,欢迎赞助支持!

赞助
(axios的post方法)统一管理项目用户相关的 HTTP 接口
https://firefly.cuteleaf.cn/posts/study-everyday/2026-09-01今日学习-axios的post方法统一管理项目用户相关的-http-接口/
作者
LJC
发布于
2026-09-01
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-09-01

目录