For AI agents: the complete documentation index is available at https://ifhover.github.io/leaf-ui/llms.txt, the full documentation bundle is available at https://ifhover.github.io/leaf-ui/llms-full.txt, and this page is available as Markdown at https://ifhover.github.io/leaf-ui/components/splitter.md.

Splitter 分割面板

调整工作区面板的大小。

基础用法

basic.tsx
import { Splitter } from '@ifhover/leaf-ui';

import { useState } from 'react';

export function SplitterBasic() {
  const [sizes, setSizes] = useState<readonly number[]>([35, 65]);
  return (
    <Splitter
      style={{ height: 220 }}
      sizes={sizes}
      onResize={setSizes}
      panels={[
        {
          key: 'navigation',
          min: 20,
          max: 55,
          collapsible: true,
          children: (
            <div style={{ padding: 16 }}>
              {'导航 — 拖动分隔条或使用方向键调整。'}
            </div>
          ),
        },
        {
          key: 'content',
          min: 30,
          children: <div style={{ padding: 16 }}>{'工作区'}</div>,
        },
      ]}
    />
  );
}

上下布局

basic.tsx
import { Splitter } from '@ifhover/leaf-ui';

export function SplitterVertical() {
  return (
    <Splitter
      direction="vertical"
      style={{ height: 240 }}
      defaultSizes={[60, 40]}
      panels={[
        {
          key: 'editor',
          min: 25,
          children: <div style={{ padding: 16 }}>{'编辑器'}</div>,
        },
        {
          key: 'output',
          min: 15,
          children: <div style={{ padding: 16 }}>{'输出内容'}</div>,
        },
      ]}
    />
  );
}

SplitterPanel

属性类型默认值说明
keystring—必需。稳定且唯一的标识。
childrenReactNode—必需。子内容;嵌套数据类型表示子节点。
minnumber—面板最小百分比。
maxnumber—面板最大百分比。
collapsibleboolean—允许折叠和恢复面板。
resizableboolean—允许拖动和使用方向键调整大小。

Splitter API

属性类型默认值说明
panelsreadonly SplitterPanel[]—必需。工作区面板。
sizesreadonly number[]—受控的面板比例,总和会归一化为 100。
defaultSizesreadonly number[]—初始的面板比例。
onResize(sizes: number[]) => void—大小改变时调用。
onResizeEnd(sizes: number[]) => void—调整结束时调用。
direction'horizontal' | 'vertical''horizontal'左右或上下排列面板。

类型与交互

组装可复用配置时,可导入对应的属性和数据类型。

import type { SplitterPanel, SplitterProps } from '@ifhover/leaf-ui';

为仅展示图标的操作提供可访问名称。交互控件支持键盘操作,并跟随 ConfigProvider 的主题和减少动画设置。