@appulsauce/svelte-grid

中文文档
2.0.2发布于 2026/02/01MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 4113

Svelte 5 可拖放和可调整网格布局

中文使用文档
文档目录10 节
  1. 安装
  2. 快速启动
  3. 特征
  4. 文档
  5. API 概览
  6. 网格道具
  7. 网格项目道具
  8. 所需资源
  9. 许可证
  10. 承认

@ appulsauce/ svelte- 网格

Svelte 5 的可拖放和可调整网格布局组件 .

npm version license

安装

npm install @appulsauce/svelte-grid

快速启动

<script lang="ts">
    import Grid, { GridItem, type GridController } from '@appulsauce/svelte-grid';

    let items = $state([
        { id: '1', x: 0, y: 0, w: 2, h: 2 },
        { id: '2', x: 2, y: 0, w: 3, h: 1 }
    ]);

    let gridController: GridController;

    function addItem() {
        const position = gridController.getFirstAvailablePosition(2, 2);
        if (position) {
            items = [...items, { id: crypto.randomUUID(), ...position, w: 2, h: 2 }];
        }
    }

    const itemSize = { height: 50 };
</script>

<button onclick={addItem}>Add Item</button>

<Grid {itemSize} cols={10} collision="push" bind:controller={gridController}>
    {#each items as item (item.id)}
        <GridItem id={item.id} bind:x={item.x} bind:y={item.y} bind:w={item.w} bind:h={item.h}>
            {#snippet children()}
                <div class="item">{item.id}</div>
            {/snippet}
        </GridItem>
    {/each}
</Grid>

特征

  • 可拖放的可缩放( R) - 用鼠标或触摸移动并调整网格项目大小
  • 碰撞检测 - 三种模式: none, (中文(简体) ), push, (中文(简体) ), compress
  • 双向绑定 - 直接将物品位置固定在州内
  • 自定义处理 - 使用片段进行自定义移动/修改手柄
  • 网格控制器 - 程序控制与 getFirstAvailablePosition() 财务报告和审定财务报表 compress()
  • 类型脚本 - 包括全套支助

文档

欲了解完整的文件和实例,请访问 文件站点 或运行本地文件 :

# Clone the repository
git clone https://github.com/KaiErikNiermann/svelte-grid-extended.git
cd svelte-grid-extended

# Install dependencies
pnpm install
pnpm docs:install

# Run docs site
pnpm docs:dev

API 概览

网格道具

Prop类型默认说明
colsnumber0列数 (0 = 无限)
rowsnumber0行数 (0 = 无限)
itemSize{ width?, height? }{}固定单元格大小( 像素)
gapnumber10项目间的差距
collision'none' | 'push' | 'compress''none'碰撞行为
readOnlybooleanfalse禁用所有交互

网格项目道具

Prop类型默认说明
xnumber所需经费X 在网格单位中的位置
ynumber所需经费Y 在网格单位中的位置
wnumber1网格单位宽度
hnumber1网格单位高度
movablebooleantrue可以被拖动
resizablebooleantrue可调整大小

所需资源

  • 丝绒 5.0.0+

许可证

麻省理工学院

承认

版本与发布记录

@appulsauce/svelte-grid 共发布 3 个版本,首次发布于 2026/01/31;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.2latest2026/02/019 个月前
2.0.12026/02/019 个月前
2.0.02026/01/319 个月前

关于 @appulsauce/svelte-grid 的常见问题

@appulsauce/svelte-grid 是什么?

Svelte 5 可拖放和可调整网格布局

如何安装 @appulsauce/svelte-grid?

在项目目录运行 npm install @appulsauce/svelte-grid,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:svelte(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@appulsauce/svelte-grid 支持 TypeScript 吗?

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

@appulsauce/svelte-grid 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@appulsauce/svelte-grid 可以商用吗?

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

@appulsauce/svelte-grid 的下载量有多少?

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

@appulsauce/svelte-grid 还在维护吗?

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