Skip to content

Splitter 分隔面板

通过拖拽分隔条调整两个或多个面板的相对尺寸。常用于"代码编辑器布局"、"文件浏览器"、"双栏对比"。

何时使用

  • 需要让用户在多个区域间动态分配空间。
  • IDE / 数据浏览器 / Diff 视图等。

基本使用

水平布局,左右两栏可拖动调整。

垂直布局

layout="vertical" 切换成上下分隔。

多面板

放多个 <c-splitter-panel> 即可形成"三栏布局",每两栏之间一条分隔条。

限制最小 / 最大尺寸

每个面板可独立设置 min / max,防止被拖到不可用尺寸。

不可拖动

设置 :resizable="false" 让面板交界处不出现拖拽条(可用作单纯的 flex 布局容器)。

监听尺寸变化

resize / resizeStart / resizeEnd 都返回当前各面板像素尺寸数组。

API

Splitter Props

参数类型默认值说明
layout'horizontal' | 'vertical''horizontal'布局方向
orientation'horizontal' | 'vertical'-layout 的别名;显式 layout 优先

Splitter Events

事件名回调签名触发时机
resize(sizes: number[])拖拽过程中持续触发
resizeStart(sizes: number[])开始拖拽
resizeEnd(sizes: number[])结束拖拽

SplitterPanel Props

参数类型默认值说明
sizenumber | string由外部状态接管的尺寸
defaultSizenumber | string初始尺寸(不接管时生效)
minnumber | string0最小尺寸
maxnumber | string最大尺寸
resizablebooleantrue是否在该面板右 / 下侧画拖拽条
collapsibleboolean | { start?: boolean; end?: boolean }false是否允许折叠;对象形态分别声明两端
showCollapsibleIconbooleanfalse是否在 resizer 上渲染折叠 / 展开按钮(需配合 collapsible

Released under the MIT License.