跳到主要内容

VEF Hooks

useAuthorizedItems

根据权限过滤配置项数组。

推荐场景:

  • 菜单数组过滤
  • 工具栏按钮过滤
  • 操作项按权限裁剪

关键参数:

参数类型说明
itemsT[]permTokens / checkMode 的配置数组

返回值:

返回值说明
T[]已经过滤后的可用项

useBreakpoints

根据自定义断点配置返回当前断点状态。

推荐场景:

  • 自适应布局切换
  • 侧边栏折叠阈值
  • 某些控件按屏宽切换表现

useCheckPermission

返回一个可在逻辑层复用的权限判断函数。

推荐场景:

  • 非 JSX 分支判断
  • 数据请求前先判断是否允许操作
  • 某个 helper 里需要权限判断

useDataDictQuery

基于 appContext.dataDictQueryFn 拉取数据字典。

推荐场景:

  • 性别、状态、类型等系统字典
  • 搜索表单的枚举条件
  • 下拉和单选组选项

关键参数:

参数类型说明
dataDictKeystring字典 key
onFetch(data) => void拉取完成回调
其余 query 参数UseQueryOptions 子集query 行为控制

useDataOptionsQuery

把普通 query 数据或字典数据统一转换成 DataOption / DataOptionWithPinyin

推荐场景:

  • 非标准 label/value 数据结构转换
  • 需要拼音搜索的下拉
  • 树形选项映射

关键参数:

参数类型说明
queryOptionsUseQueryOptions普通 query 来源
dataDictKeystring字典来源
labelKey / valueKeystring | fn字段映射
disabledKey / descriptionKey / childrenKeystring | fn额外字段映射
withPinyinboolean是否补拼音字段

对比依赖 hooks

这一组 hooks 适合“依赖是对象或数组,但你不想浅比较失效”的场景。

Hook推荐场景
useDeepCallback回调依赖深比较
useDeepCompare仅获取深比较信号
useDeepEffecteffect 依赖深比较
useDeepIsomorphicEffect同构环境深比较 effect
useDeepLayoutEffectlayout effect 深比较
useDeepMemomemo 依赖深比较
useShallowCallback浅比较版本回调
useShallowCompare浅比较信号
useShallowEffect浅比较 effect
useShallowIsomorphicEffect同构浅比较 effect
useShallowLayoutEffectlayout effect 浅比较
useShallowMemomemo 浅比较

事件与环境 hooks

Hook推荐场景
useDocumentEvent监听 document 级事件
useEmitterEvent监听 EventEmitter 事件
useLatest在回调里拿最新值
useRafState高频更新状态但不想每次同步渲染
useSingleton组件生命周期内只初始化一次对象
useViewportSize读取视口宽高

Query / Mutation 状态 hooks

Hook推荐场景
useHasFetching页面按钮、头部区域显示 query loading
useHasMutating提交按钮禁用、防重复操作

权限判断 hook

Hook推荐场景
useIsAuthorized直接得到当前权限是否满足

说明:

  • PermissionGate 相比,它更适合逻辑分支判断
  • useCheckPermission 相比,它更适合单点布尔值计算