ag-grid、slick-grid和angular-grid哪个更好?

33

最近,我们考虑更换我们现有的网格工具。目前,我们使用kendo-ui来进行网格操作。在搜索之后,我们找到了3个结果。但是,我们仍然不确定哪一种更好,并且未来也不知道为什么更好。

在使用kendo时,我们错过了对其进行控制的功能。如果有人能帮助我们选择正确的带有angularjs的网格,那将是非常好的。

3个回答

49

声明:我是ag-Grid的创始人兼首席执行官。

首先,关于问题的澄清,ag-Grid曾被称为angular-grid,但我认为你指的是angular-ui-grid(或简称ui-grid),所以请允许我回答ag-grid vs slick-grid vs ui-grid。答案是ag-Grid。

这些是网站的链接:ag-Gridui-gridslick-grid

所有的表格都很受欢迎并得到广泛使用,每个表格有一群用户。

在Stackoverflow的回答中完整比较这些表格超出了上下文的范围,然而社区的反馈表明,ag-Grid更好的原因如下:

  1. ui-Grid只能在AngularJS 1.x中使用。ag-Grid支持Angular 1和2、React甚至原生JavaScript(无框架)。因此,如果使用ui-Grid,您只能选择一个框架,即AngularJS 1。Slickgrid是原生Javascript(使用JQuery),因此也可以在任何框架之外工作。
  2. ag-Grid的文档非常好。
  3. 对于企业功能(分组、过滤、自定义单元格渲染、固定列),ag-Grid再次胜出。ag-Grid的分组和聚合功能是其他表格所没有的。Slickgrid没有固定列,这对我来说是一个障碍。只有ag-Grid具有类似Excel的过滤功能。
  4. slickgrid不再由创始人维护(根据他的网站)。
  5. ag-Grid使用纯Javascript编写,没有任何依赖库。ui-grid依赖于Angular。Slickgrid依赖于JQuery。
  6. 在性能方面,SlickGrid和ag-Grid大致相同。然而ui-grid在处理大型数据集时表现不佳。
  7. 源代码方面,ag-Grid内部的代码非常清晰,因此当您需要了解某个功能如何工作时,可以通过代码轻松进行调试。
  • 在大小方面,ag-Grid比很多竞争对手都要大。截至2018年8月1日左右,从CDN下载的ag-grid文件大小为783978字节(minified),不包括样式表。这可能会成为某些人放弃使用它的原因。
  • 最后,如果ui-grid或slickgrid达到我的标准,我就不需要编写ag-Grid了!

  • 32
    我现在是SlickGrid的主要维护者,这里有一个最新的代码库 https://github.com/6pac/SlickGrid。 - Ben McIntyre
    6
    @NiallCrosby,你说文档很好,但我找不到关于Angular 2+的具体文档。所有的代码示例都是用JavaScript编写的,没有TypeScript。我需要决定如何处理在Angular 2+中缺少ui-grid的问题,而文档中缺乏TypeScript的内容给人的印象是Angular 2+在ag-grid中不是优先考虑的,有些文档可能在Angular 2+中不适用。例如:https://www.ag-grid.com/javascript-grid-cell-rendering-components/#gsc.tab=0 显示直接的DOM交互,这不太符合Angular的规范。 - tomfumb
    7
    将来,请务必在讨论或推荐产品时注明您的隶属关系。 - Rob
    6
    agGrid的人机工程学非常好,但我认为在您的帖子中提到JS负载大小会更好。 我刚刚花费了几个小时的时间来学习它...只发现CDN下载文件(https://github.com/ag-grid/ag-grid/issues/1459)是783978字节的缩小版..不包括样式表。 这对我正在做的事情来说是无法接受的,并且显然我不是唯一一个这样的情况。 :-/ 请更新此帖子以说明它,以及您正在采取什么措施解决它。 - HostileFork says dont trust SE
    4
    有没有关于第6点的文档或参考资料,证明ag-Grid和Slickgrid的性能相当?根据这个测试结果,情况并非如此:http://www.crankuptheamps.com/blog/posts/2017/10/05/grid-comparison/ - ron
    显示剩余12条评论

    30

    我四处寻找,并在这里找到了最佳答案:http://jspreadsheets.com

    所有流行的网格工具都在这里,包括演示、特点和受欢迎程度指标。

    为了使其成为StackOverflow接受的答案,以下是按照github星级递减排序的比较列表:

    • Handsontable,handsontable.com
    • SlickGrid
    • Clusterize.js
    • ui-grid,ui-grid.info
    • DataTables,datatables.net
    • ng-table,ng-table.com
    • jqGrid
    • FancyGrid
    • BackGrid.js,backgridjs.com
    • Recline.js
    • ag-grid,ag-grid.com
    • 其他多个工具

    所有这些工具都可以在Angular应用程序中使用,有些更“本地”一些。哪一个“更好”取决于您想要实现什么功能以及投入的精力水平。


    2
    Jspreadsheets.com不是一个好的参考,因为GitHub星标受项目年龄的主观影响。例如,ag-Grid非常新,因此需要时间来积累其星标。流行度也不能代表质量,GitHub星标相当于X因素投票! - Niall Crosby
    它不需要成为评估“质量”的参考,因为这对于项目需求来说是主观的。它是列出广泛使用的现有解决方案并立即提供功能和特性概述的良好参考。 - kert
    3
    这个网站看起来像是由制作我最喜欢的Handsontable的人编写的。然而,它没有提到你应该关注的OpenFin Hypergrid。http://openfin.github.io/fin-hypergrid-polymer-demo/components/fin-hypergrid/demo.html - opticyclic

    -4

    我喜欢Jeet grid

    Stylus

    Stylus 不试图与 CSS 语法兼容,因此比 SCSS 更强大


    3
    Jeet 是一个网格系统(布局),这个问题是关于数据网格的。 - JPelletier

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接