@devbookhq/splitter

中文文档
1.4.2发布于 2023/08/05MITTypeScriptESM + CJS近 30 天下载 10.2万

Create resizable split views - like in VS Code

原始使用文档
文档目录7 节
  1. Installing
  2. Usage
  3. Horizontal split
  4. Vertical split
  5. Nested split
  6. Get sizes of tiles
  7. Examples

Splitter

Splitter is a React component that allows you to split views into resizable panels. Similar to tabs in Visual Studio Code, for example. Here's a gif of what you can build with Splitter:

Splitter is inspired by Split.js and written as 100% functional component:

  • All size calculation is done through CSS using calc with minimal JS. This makes it much faster
  • Fully responsive
  • No dependencies beside React
  • Minimal assumptions about your styling and views

CodeSandbox project

Installing

npm install @devbookhq/splitter
# or
yarn add @devbookhq/splitter

Usage

Horizontal split

import Splitter, { SplitDirection } from '@devbookhq/splitter'

function MyComponent() {
  return (
    <Splitter>
      <div>Tile 1</div>
      <div>Tile 2</div>
    </Splitter>
  );
}

Vertical split

import Splitter, { SplitDirection } from '@devbookhq/splitter'

function MyComponent() {
  return (
    <Splitter direction={SplitDirection.Vertical}>
      <div>Tile 1</div>
      <div>Tile 2</div>
    </Splitter>
  );
}

Nested split

import Splitter, { SplitDirection } from '@devbookhq/splitter'

function MyComponent() {
  return (
    <Splitter direction={SplitDirection.Vertical}>
      <div>Tile 1</div>
      <Splitter direction={SplitDirection.Horizontal}>
        <div>Tile 2</div>
        <Splitter direction={SplitDirection.Vertical}>
          <div>Tile 3</div>
          <div>Tile 4</div>
        </Splitter>
      </Splitter>
    </Splitter>
  );
}

Get sizes of tiles

import Splitter, { SplitDirection } from '@devbookhq/splitter'

function MyComponent() {
  function handleResizeStarted(gutterIdx: number) {
    console.log('Resize started!', gutterIdx);
  }
  function handleResizeFinished(gutterIdx: number, newSizes: number[]) {
    console.log('Resize finished!', gutterIdx, newSizes);
  }

  return (
    <Splitter
      direction={SplitDirection.Vertical}
      onResizeStarted={handleResizeStarted}
      onResizeFinished={handleResizeFinished}
    >
      <div>Tile 1</div>
      <div>Tile 2</div>
    </Splitter>
  );
}

To see more examples check out the examples section.

Examples

Check the example folder or the CodeSandbox project.

版本与发布记录

@devbookhq/splitter 共发布 24 个版本,首次发布于 2021/03/06;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.4.2latest2023/08/053 年前
1.4.12023/07/283 年前
1.4.02022/12/073 年前
1.3.22021/12/154 年前
1.3.12021/12/154 年前
1.3.02021/12/154 年前

关于 @devbookhq/splitter 的常见问题

@devbookhq/splitter 是什么?

Create resizable split views - like in VS Code

如何安装 @devbookhq/splitter?

在项目目录运行 npm install @devbookhq/splitter,或使用 pnpm add / yarn add / bun add。

@devbookhq/splitter 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@devbookhq/splitter 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@devbookhq/splitter 可以商用吗?

@devbookhq/splitter 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@devbookhq/splitter 的下载量有多少?

根据 npm 官方下载统计,@devbookhq/splitter 在 2026/10/12 – 2026/11/10 这 30 天内被下载 101,663 次,日均约 3,389 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@devbookhq/splitter 还在维护吗?

最新版本 1.4.2 发布于 2023/08/05(3 年前);至今共发布 24 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/03/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。