接口传参

6 阅读1分钟

三种常见情况:查询参数、路径参数、请求体,用 axios(你封装的 http)都很好写。

1. 查询参数(?page=1&pageSize=10 这种) 改 api:

// src/api/user.ts
import http from '../utils/http'

export function getUsers(params?: { page?: number; pageSize?: number }) {
  return http.get('/users', { params })
}

组件里用:

const res = await getUsers({ page: 1, pageSize: 10 })
// 你的 http 拦截器已经 return response.data,这里的 res 就是数据本身

axios 会自动把 { page: 1, pageSize: 10 } 变成 ?page=1&pageSize=10

2. 路径参数(/users/123 这种)

// api
export function getUserDetail(id: number | string) {
  return http.get(`/users/${id}`)
}

// 组件
const detail = await getUserDetail(123)

3. 请求体参数(POST/PUT 提交表单或 JSON)

// api
export function createUser(data: { name: string; email: string }) {
  return http.post('/users', data)
}

// 组件
await createUser({ name: '张三', email: 'a@b.com' })

总结: