Splitter 分割面板 
Splitter 组件用于创建可调整大小的分割面板,允许用户通过拖动分隔条来重新分配面板空间,适用于需要灵活布局的界面,如代码编辑器、文件管理器等。
引入 
typescript
import { Splitter } from '@versakit/vue'使用 
loading
基础用法 
基础的水平分割面板,可通过拖动中间的分隔条调整两个面板的大小。
vue
<template>
	<Splitter>
		<SplitterItem>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</SplitterItem>
		<SplitterItem>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2
			</div>
		</SplitterItem>
	</Splitter>
</template>垂直布局 
通过 layout 属性设置垂直分割布局。
vue
<template>
	<Splitter layout="vertical">
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2
			</div>
		</template>
	</Splitter>
</template>多面板 
支持创建多个可调整大小的面板。
vue
<template>
	<Splitter>
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2
			</div>
		</template>
		<template #panel-2>
			<div class="h-40 flex items-center justify-center bg-gray-300">
				面板 3
			</div>
		</template>
	</Splitter>
</template>嵌套面板 
支持在面板内嵌套其他分割面板,创建复杂的布局。
vue
<template>
	<Splitter>
		<template #panel-0>
			<div class="h-60 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</template>
		<template #panel-1>
			<Splitter layout="vertical">
				<template #panel-0>
					<div class="h-30 flex items-center justify-center bg-gray-200">
						面板 2.1
					</div>
				</template>
				<template #panel-1>
					<div class="h-30 flex items-center justify-center bg-gray-300">
						面板 2.2
					</div>
				</template>
			</Splitter>
		</template>
	</Splitter>
</template>自定义分隔条大小 
通过 gutter-size 属性设置分隔条的大小。
vue
<template>
	<Splitter :gutter-size="8">
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2
			</div>
		</template>
	</Splitter>
</template>初始尺寸和最小尺寸 
可以通过 initial-sizes 和 min-size 属性设置面板的初始尺寸和最小尺寸。
vue
<template>
	<Splitter :initial-sizes="[70, 30]" :min-size="[20, 10]">
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1 (初始 70%, 最小 20%)
			</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2 (初始 30%, 最小 10%)
			</div>
		</template>
	</Splitter>
</template>自定义样式 
使用 pt 属性自定义组件样式。
vue
<template>
	<Splitter
		:pt="{
			root: 'border border-gray-300 rounded-md overflow-hidden',
			gutter: 'bg-blue-500 hover:bg-blue-600',
			gutterHandler: 'bg-white',
		}"
	>
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 1
			</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-200">
				面板 2
			</div>
		</template>
	</Splitter>
</template>无样式模式 
通过 unstyled 属性移除默认样式,完全自定义组件外观。
vue
<template>
	<Splitter
		unstyled
		:pt="{
			root: 'flex border border-gray-200 rounded-lg overflow-hidden',
			gutter:
				'w-2 bg-gray-100 hover:bg-gray-200 cursor-col-resize flex items-center justify-center',
			gutterHandler: 'h-8 w-1 bg-gray-400 rounded',
		}"
	>
		<template #panel-0>
			<div class="h-40 flex items-center justify-center bg-gray-50">面板 1</div>
		</template>
		<template #panel-1>
			<div class="h-40 flex items-center justify-center bg-gray-100">
				面板 2
			</div>
		</template>
	</Splitter>
</template>API 
Splitter Props 
| 名称 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| layout | 'horizontal' | 'vertical' | 'horizontal' | 分割面板的布局方向 | 
| gutterSize | number | 4 | 分隔条的大小 | 
| initialSizes | number[] | - | 面板的初始尺寸百分比 | 
| minSize | number | number[] | 10 | 面板的最小尺寸百分比 | 
| unstyled | boolean | false | 是否移除默认样式 | 
| pt | SplitterPT | - | 传递样式类 | 
Splitter Events 
| 名称 | 参数 | 说明 | 
|---|---|---|
| resize | (sizes: number[]) | 调整大小时触发 | 
| resizeStart | (event: MouseEvent | TouchEvent) | 开始调整大小时触发 | 
| resizeEnd | (sizes: number[]) | 结束调整大小时触发 | 
Splitter Slots 
| 名称 | 参数 | 说明 | 
|---|---|---|
| panel- | - | 面板内容,n 从 0 开始表示面板的索引 |