签入版本

This commit is contained in:
小蚂蚁云
2026-10-25 17:24:27 +08:00
parent 48911cc08f
commit fdbeae092a
1010 changed files with 30682 additions and 95274 deletions
@@ -0,0 +1,54 @@
# 9.18 Hooks 与枚举
:::tip 概述
`hooks/` 按 core/event/setting/web 分组沉淀组合式逻辑;`enums/` 定义前端常量枚举。两者都是"写一次、处处引用"的基础设施。
:::
## Hooks 分组
| 分组 | 代表 | 职责 |
|---|---|---|
| web | usePermission | 权限判定(v-if 场景,[9.7](/zh/frontend/permission.html)) |
| core | use-async | 异步状态管理(loading/error 包装) |
| event | 事件类 hooks | 监听与派发 |
| setting | designSetting 相关 | 主题/布局参数读写 |
| 根目录 | useTime / useOnline / useBattery / useDomWidth | 时间、网络状态、电量、宽度监听 |
## 枚举清单(enums/)
| 文件 | 枚举内容 |
|---|---|
| httpEnum.ts | HTTP 相关常量(结果类型、超时) |
| permissionsEnum.ts | 权限相关常量 |
| roleEnum.ts | 角色常量 |
| pageEnum.ts | 页面路径常量(BASE_LOGIN 等,守卫引用) |
| cacheEnum.ts | 缓存键常量 |
| breakpointEnum.ts | 响应式断点 |
| avatarEnum.ts | 头像相关 |
## 使用示例
```typescript
import { usePermission } from '@/hooks/web/usePermission';
import { PageEnum } from '@/enums/pageEnum';
const { hasPermission } = usePermission();
const loginPath = PageEnum.BASE_LOGIN;
```
## 编写新 hook 的规约
- 文件名 `use-*.ts`(kebab),导出同名函数
- 纯组合式:内部用 ref/computed/watch,不依赖组件实例才能运行的 API(或显式在 setup 调用)
- 通用才抽:两个以上页面用到再沉淀,单页面逻辑留页面内
## 枚举编写规约
- `as const` + 类型导出,避免 any
- 键名大写下划线,值按语义(字符串枚举为主)
- 与后端常量对齐的值(如权限通配码)注明来源,防两端漂移
## 相关
- [9.17 工具函数](/zh/frontend/utils.html)
- [附录 J 前端枚举速查](/zh/appendix/enums.html)