React 组件

Splitter 分割面板

通过 UGSplitter 与 UGSplitterPanel 组合多个可调整区域,支持横纵方向、尺寸约束、折叠、受控状态和完整拖拽生命周期。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import { UGSplitter, UGSplitterPanel } from '@ug666/ui-react'

基础分割

Splitter 负责排列和调整,SplitterPanel 声明每个区域;可拖动分隔条,也可用方向键、Home 和 End。

左侧
右侧

多面板

一个 Splitter 可组合两个以上 Panel,每条分隔线只调整相邻面板。

导航
工作区
属性

垂直分割

direction 改变排列方向,Panel 的 min/max 分别约束自身可调整范围。

编辑器
终端

受控多面板

通过 sizes 与 onSizesChange 管理完整比例数组,适合保存和恢复用户布局。

当前比例:28 / 44 / 28
导航
工作区
检查器

折叠与固定区域

可折叠 Panel 在相邻分隔条上双击或按 Enter 切换;resizable=false 可锁定分隔线。

双击分隔条折叠
可调整
锁定

延迟提交

lazy 模式在拖拽期间只报告候选尺寸,松开指针后再更新面板,适合内容渲染成本较高的区域。

松开后更新
高成本内容

属性

UGSplitter 属性

管理方向、完整尺寸数组、键盘步进和拖拽生命周期。

属性类型默认值说明
direction'horizontal' | 'vertical''horizontal'设置面板与分隔条方向。
defaultSizes / sizesnumber[]等分 / —设置非受控初始比例或受控比例数组;组件会归一化为 100%,并按各面板 min / max 修正越界值。
keyboardStepnumber2方向键每次调整的百分比。
lazybooleanfalse拖拽期间不更新面板尺寸,松开指针后一次提交。
onSizesChange(sizes: number[]) => void任一分隔条变化时返回所有面板比例。
onCollapse(detail: SplitterCollapseDetail) => void任一面板折叠状态改变时,在根组件统一返回面板索引、折叠状态和完整尺寸数组。
onResizeStart / onResize / onResizeEnd(detail: SplitterResizeDetail) => void指针拖拽开始、过程和结束生命周期。
原生属性 / refHTMLAttributes<HTMLDivElement>透传原生属性并暴露分割容器。

UGSplitterPanel 属性

声明单个区域的初始尺寸、约束、折叠和调整能力。

属性类型默认值说明
defaultSizenumber自动等分设置当前面板的初始百分比。
min / maxnumber0 / 100限制当前面板的最小和最大百分比;传入顺序颠倒时按有效区间处理。
collapsible / collapsedSizeboolean / numberfalse / 0允许通过相邻分隔条折叠;collapsedSize 会限制在 0 到 min 之间。
resizablebooleantrue为 false 时锁定与该面板相邻的分隔条。
onCollapseChange(collapsed: boolean) => void面板确实进入或退出折叠状态后触发。
原生属性 / refHTMLAttributes<HTMLDivElement>透传原生属性并暴露面板元素。
旧双栏 APIfirst / second / size / defaultSize / min / max兼容仅用于旧代码迁移;新代码使用 SplitterPanel 与 sizes。