veltra-compositions
Installation
SKILL.md
veltra-compositions
生成物
| 文件 | 内容 |
|---|---|
| generated/modules/ | 每个 use-* 一篇,含该模块下全部 .ts 源码 |
| generated/manifest.json | 同步时间与模块文件列表 |
| references/usage-patterns.md | desktop 中的真实调用片段 |
运行 bun run sync-veltra-compositions 或 bun run sync-skills 可重新生成 generated/。
导入约定
import {
useModel,
usePop,
useVirtualizer,
useTransition,
useFallbackProps,
useFormFallbackProps,
useFormComponent,
useConfig,
useComponentProps,
useDrag,
useFocus,
useReactiveSize,
useResizeObserver,
useObserverCallback,
useUserAction
} from '@veltra/compositions'
按需只引入用到的函数即可;无默认导出。
函数速查(14)
| 函数 | 用途 | 关键参数 / 行为 | 返回值要点 |
|---|---|---|---|
useModel |
自定义 v-model(非 defineModel 场景) |
propName、local(bool 或函数)、shallow |
类 ref 的 { value } |
useUserAction |
用户动作期间阻断 modelValue 回流副作用 | 无 | { userAction, isUserActive } |
useDrag |
拖拽(如对话框标题栏) | 目标 ref、边界等 | 拖拽状态与控制 |
useFocus |
焦点与 hover 语义 | 回调 | focus、handleFocus、handleBlur 等 |
useTransition |
过渡:css 或 style |
target、name / style 关键帧 |
enter、leave |
usePop |
Popper 定位 | triggerRef、contentRef、direction |
update、popperContainerId |
useReactiveSize |
响应式测量尺寸 | 元素 / 尺寸源 | 尺寸 ref |
useResizeObserver / useObserverCallback |
ResizeObserver 与回调辅助 |
监听目标、选项 | 见 use-resize-observer 源码 |
useVirtualizer |
虚拟列表低阶适配层 | count、scrollEl、contentEl / beforeEl / afterEl、estimateSize |
{ virtualizer, snapshot, items, isScrolling };尺寸走 DOM 命令式写入,业务语义由消费者组装 |
useFallbackProps |
props → 全局 config 回退 | 源对象数组、默认值表 | 各字段 ref |
useFormFallbackProps |
表单场景三级回退 | [formProps, props] + 默认值 |
同上 |
useFormComponent |
表单 provide / inject | 父级传入 props;子级无参 |
formProps、inForm 等 |
useConfig |
全局文档/尺寸等配置 | 读配置 | config 等 |
useComponentProps |
规范化组件 props | 视具体 API | 见源码 |
按场景选用
状态与并发
- useModel:需要非
modelValue的 prop 名、或local函数在受控/非受控间切换(如表格current行)。 - useUserAction:用户动作期间阻断由
modelValue回流引起的同步副作用;通过userAction(fn)包装事件处理函数(不要自调用),副作用侧用isUserActive()早返。
UI 交互
- useDrag、useFocus:对话框拖拽、输入框聚焦管理。
- useTransition:浮层、对话框内部需要程序触发
enter/leave的过渡(常与 usePop 搭配)。
布局与列表
- usePop:下拉、Tooltip 等浮动层定位。
- useReactiveSize、useResizeObserver:随容器变化重算布局。
- useVirtualizer:大列表、下拉选项、表格体虚拟化的 Vue 胶水层;返回
{ virtualizer, snapshot, items, isScrolling },尺寸走 DOM 命令式写入(contentEl/beforeEl/afterEl),virtualEnabled/v-for :key/scrollTo对齐模式等业务语义由消费者显式组装。
表单
- useFormComponent:在
UForm与子控件间同步上下文。 - useFormFallbackProps:表单子组件上统一
size/disabled/readonly等。 - useFallbackProps:脱离表单时的同一套回退逻辑。
- useConfig:读取全局尺寸等,与
@veltra/styles的loadTheme协同。
组件增强
- useComponentProps:对传入 props 做归一化或兼容层(见源码中注释)。
延伸阅读(旧版参考文档)
与 generated/ 镜像互补:源码定位、模块地图与编写模式。
维护
- 源码权威位置:
packages/compositions/src/。 - 修改 API 后请运行
bun run sync-veltra-compositions更新generated/,以便技能文档与类型保持一致。
Related skills