For AI agents: the complete documentation index is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms.txt, the full documentation bundle is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms-full.txt, and this page is available as Markdown at https://ifhover.github.io/leaf-ui/v/0.6.0/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 的主题和减少动画设置。