docs: 更新 DEV.md — API 调用规范和页面加载模式
- request 函数正确调用格式说明 - 页面数据加载标准模式(initialLoaded 守卫)
This commit is contained in:
41
DEV.md
41
DEV.md
@@ -33,6 +33,47 @@
|
|||||||
- API 地址统一在 `config.ts` 中配置,不要在各文件中硬编码
|
- API 地址统一在 `config.ts` 中配置,不要在各文件中硬编码
|
||||||
- 头像等用户文件 URL 只存文件名,前端拼接 `API_BASE + 路径 + 文件名`
|
- 头像等用户文件 URL 只存文件名,前端拼接 `API_BASE + 路径 + 文件名`
|
||||||
|
|
||||||
|
## API 调用规范
|
||||||
|
|
||||||
|
### request 函数调用格式
|
||||||
|
|
||||||
|
`request` 函数**只接受一个对象参数**,格式为 `{ url, method?, data? }`。
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// ✅ 正确
|
||||||
|
request({ url: '/feedback', data: params })
|
||||||
|
request({ url: '/config' })
|
||||||
|
request({ url: '/feedback', method: 'POST', data })
|
||||||
|
|
||||||
|
// ❌ 错误 — 会导致 URL 拼接为 /apiundefined
|
||||||
|
request('/feedback', { params })
|
||||||
|
request('/config', { method: 'PUT', data })
|
||||||
|
```
|
||||||
|
|
||||||
|
**原因**:`request` 函数签名是 `request<T>(options: RequestOptions): Promise<T>`,第一个参数是 options 对象,不支持分开传 url 和 options。
|
||||||
|
|
||||||
|
### 页面数据加载模式
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
const initialLoaded = ref(false)
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
await waitForReady()
|
||||||
|
await loadData()
|
||||||
|
initialLoaded.value = true
|
||||||
|
})
|
||||||
|
|
||||||
|
// onShow 时静默刷新,但必须有 initialLoaded 守卫
|
||||||
|
onShow(() => {
|
||||||
|
if (initialLoaded.value) loadData(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
onPullDownRefresh(async () => {
|
||||||
|
await loadData()
|
||||||
|
uni.stopPullDownRefresh()
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
## Never 规则
|
## Never 规则
|
||||||
|
|
||||||
- Never 修改 dist/ 目录
|
- Never 修改 dist/ 目录
|
||||||
|
|||||||
Reference in New Issue
Block a user