@egjs/grid

中文文档
1.18.1发布于 2026/10/30MITTypeScriptESM + CJS近 30 天下载 12.9万

可以按照网格类型排列项目的组件

中文使用文档
文档目录20 节
  1. 网格
  2. 网格
  3. 文档
  4. 下载和安装
  5. 如何使用
  6. 使用更快的懒惰渲染( L)
  7. 检测集装箱和儿童的尺寸变化
  8. 预猜性能大小或隐形物品.
  9. 如果所有物品都一样大小呢?
  10. 如果有一个大小组存在呢?
  11. 如果所有物品都不改变大小怎么办?
  12. 软件包
  13. 支持的浏览器
  14. 如何开始开发egjs-grid?
  15. 发展环境
  16. 3个. npm start
  17. 线性
  18. 测试
  19. 错误报告
  20. 许可证

网格

npm version    Github actions  Coveralls github    React  Angular  Vue  Svelte

一个可以按照网格类型排列项目的组件.

演示 编号 :  API 密码

网格

共济会说明框架图形包装 网格
  • 共济会: MesonryGrid是一个网格,可以堆放与一叠砖一样宽的物品. 将所有图像的宽度调整到相同的大小,找到最低高度一栏,并插入新项目.
  • 说明:"正经"是一个印刷名词,意思是"适合一行宽". JustifiedGrid是一个网格,根据给定大小的行来填充项目.
  • 框架图形:"Frame"是一个印刷名词,意思是"它适合一行宽". FrameGrid是一个网格,根据给定大小的行填充项目.
  • 包装 网格: PackingGrid是一个显示重要项目较大而不会牺牲项目重量的网格. 将行和列相分离,使项目能动态地被放入水平和垂直空间,而不是有序地排列.

文档

下载和安装

从 repo 直接下载 dist 文件或通过 npm 安装它 .

$ npm install @egjs/grid
<script src="//naver.github.io/egjs-grid/release/latest/dist/grid.min.js"></script>

如何使用

import { MasonryGrid, JustifiedGrid, FrameGrid, PackingGrid } from "@egjs/grid";


// Grid.MasonryGrid
const grid = new MasonryGrid(container, {
  gap: 5,
});

grid.renderItems();

使用更快的懒惰渲染( L)

  • 当 loading="lazy" 或者说 data-grid-lazy="true"使用(外部懒惰加载)属性,立即对物品进行渲染. 当物品被装入时,它们依次被制成.
<img src="..." />
<img src="..." />
<img src="..." loading="lazy" />
<img data-grid-lazy="true" />
  • 如果您使用 data-grid-width 财务报告和审定财务报表 data-grid-height 属性、自我大小、子图像和视频元素自动调整,直到装入完成.
<div data-grid-width="100" data-grid-height="100">
   <img src="..." />
   <img src="..." />
   <img src="..." />
</div>
  • 如果您使用 data-grid-skip="true" 属性,即使存在图像本身和孩子图像,以及视频元素,也可以省略.
<div data-grid-skip="true">
   <img src="..." />
   <img src="..." />
   <img src="..." />
</div>

检测集装箱和儿童的尺寸变化

Grid通过窗口调整大小事件来计算容器和孩子的大小. 然而,即使窗口的大小没有变化,事件容器和孩子的大小也会有变化. 最早的渲染问题大多也是这样.

在这种情况下,我建议 调整观察员的大小 给你的.

提供 useResizeObserver 用于检测容器大小变化的选项 observeChildren 选项以检测儿童的大小变化.

import { MasonryGrid, JustifiedGrid, FrameGrid, PackingGrid } from "@egjs/grid";


// Grid.MasonryGrid
const grid = new MasonryGrid(container, {
  gap: 5,
  useResizeObserver: true,
  observeChildren: true,
});

grid.renderItems();

预猜性能大小或隐形物品.

如果所有物品都一样大小呢?

如果你使用 isEqualSize 选项,所有项目都被认为大小相同. 每次调整大小只计算一个项目的大小. 添加 data-grid-not-equal-size="true" 属性,如果有一个例外项目,其大小需要在使用等分码时计算.

<div class="item item1"></div>
<div class="item item1"></div>
<div class="item item1"></div>
<!--item2 is a different size than item1.-->
<div class="item item2" data-grid-not-equal-size="true"></div>

如果有一个大小组存在呢?

isEqualSize 假设所有项目都是平等的。 但如果有两个以上的大小组,请使用 data-grid-size-group。 。 。 .

<!--item1 has the same size.-->
<div class="item item1" data-grid-size-group="1"></div>
<div class="item item1" data-grid-size-group="1"></div>
<!--item2 has the same size.-->
<div class="item item2" data-grid-size-group="2"></div>
<div class="item item2" data-grid-size-group="2"></div>

如果所有物品都不改变大小怎么办?

如果所有项目没有恒定大小,请使用 isConstantSize 选项。 调整大小不计算项目大小. 如果您想要重新计算, 请使用 .updateItems(items, { useOrgResize: true }) 方法或 .renderItems({ useOrgResize: true }) 方法.

软件包

软件包版本说明
@egjs/反应-网格version反应 @ egjs/ grid 的端口
@ egjs/ngx- gridversion角质 @ egjs/ grid 的端口
@egjs/vue-grid (英语)versionVue.js (英语) @ egjs/ grid 的端口
@ egjs/ svelte- gridversion丝绒 @ egjs/ grid 的端口

支持的浏览器

以下为所支持的浏览器.

Internet 浏览器颜色火花萨法里iOS系统机器人
9个+最新最新最新7个+4+(填充2.2+)

如何开始开发egjs-grid?

任何有兴趣开发egjs-grid的人,请遵循以下指示.

发展环境

1. 清除储存库

克隆egjs-grid寄存器并安装依赖模块.

# Clone the repository.
$ git clone https://github.com/naver/egjs-grid.git

2. 安装依赖关系

# Install the dependency modules.
$ npm install

3个. npm start

运行 storybook 促进发展.

打开 http://localhost:6006 (英语) 在浏览器中查看.

如果您做了编辑, 页面会重新装入 .
您也会看到控制台上的任何错误 .

3个. npm build

使用 npm 脚本构建网格

$ npm run build

完整的构建完成后将创建两个文件夹 .

  • 数字 文件夹:包括 电网.js 财务报告和审定财务报表 互联网档案馆的存檔,存档日期2013-12-02 文档.
  • 医生 文件夹:包括 API 文档。 文件的主页是: 文件/索引.html。 。 。 .

线性

为了保持同样的代码风格,我们采用了 ESLint 语录 保持我们的代码质量。 这个 规则 已根据 Airbnb JavaScript 样式指南。 。 。 . 设置您的编辑器以检查或运行到命令下方的 Linting .

$ npm run lint

测试

一旦您创建了分支并完成了开发, 您必须进行测试运行 npm test 命令,然后将代码推入远程仓库.

$ npm run test

运行 npm test 命令将开始 摩诃迦叶 通过测试 卡玛跑者。 。 。 .

错误报告

如果你发现虫子,请向我们报告 打开一个新的 问题 (原始内容存档于2018-09-29). on GitHub.

许可证

egjs-grid 发布于 麻省理工学院许可证。 。 。 .

Copyright (c) 2021-present NAVER Corp.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

版本与发布记录

@egjs/grid 共发布 103 个版本,首次发布于 2021/03/10;过去 12 个月发布了 3 个版本。

版本发布日期距今
1.18.1latest2026/10/3014 天前
1.18.1-beta.0beta2026/10/2321 天前
1.18.02025/12/1211 个月前
1.17.2-beta.12025/11/131 年前
1.17.2-beta.02025/11/121 年前
1.17.12025/07/031.4 年前

关于 @egjs/grid 的常见问题

@egjs/grid 是什么?

可以按照网格类型排列项目的组件

如何安装 @egjs/grid?

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

@egjs/grid 支持 TypeScript 吗?

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

@egjs/grid 支持 ESM 还是 CommonJS?

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

@egjs/grid 可以商用吗?

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

@egjs/grid 的下载量有多少?

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

@egjs/grid 还在维护吗?

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