110k

可调整大小 Resizable

支持键盘操作的无障碍可调整大小面板组和布局。

One
Two
Three
import {
  ResizableHandle,
  ResizablePanel,

关于

Resizable 组件基于 bvaughnreact-resizable-panels 构建。

安装

pnpm dlx shadcn@latest add resizable

使用

import {
  ResizableHandle,
  ResizablePanel,
  ResizablePanelGroup,
} from "@/components/ui/resizable"
<ResizablePanelGroup orientation="horizontal">
  <ResizablePanel>一</ResizablePanel>
  <ResizableHandle />
  <ResizablePanel>二</ResizablePanel>
</ResizablePanelGroup>

示例

垂直方向

使用 orientation="vertical" 来设置垂直方向的可调整大小。

Header
Content
import {
  ResizableHandle,
  ResizablePanel,

句柄

使用 withHandle 属性在 ResizableHandle 上显示可见的句柄。

Sidebar
Content
import {
  ResizableHandle,
  ResizablePanel,

RTL

要启用 shadcn/ui 中的 RTL 支持,请参阅 RTL 配置指南

واحد
اثنان
ثلاثة
"use client"

import * as React from "react"

API 参考

请参阅 react-resizable-panels 文档。

更新日志

2025-02-02 react-resizable-panels v4

升级到 react-resizable-panels v4。完整详情请参阅 v4.0.0 发布说明

如果你直接使用 react-resizable-panels 的基础组件,请注意以下更改:

v3v4
PanelGroupGroup
PanelResizeHandleSeparator
direction 属性orientation 属性
defaultSize={50}defaultSize="50%"
onLayoutonLayoutChange
ImperativePanelHandlePanelImperativeHandle
Panel 的 ref 属性panelRef 属性
data-panel-group-directionaria-orientation