Es-Toolkit,一个现代Lodash替代品

es-toolkit:现代JavaScript工具库

es-toolkit 是一个现代 JavaScript 工具库,旨在提供高性能、类型安全的替代方案,直接与 Lodash 和 Underscore.js 竞争。它声称在包大小和性能方面有显著改进。

背景与需求

历史上,JavaScript 无法完全满足开发者社区的需求,这导致了 Lodash、jQuery 和 MomentJS 等库的兴起。这些库提供了 JavaScript 语言中缺失的实用功能。尽管 JavaScript 的能力近年来有所扩展,许多开发者仍然使用这些第三方库,因为它们可以提供更好的性能、持续更新以及熟悉的接口。

包大小对比

从包大小来看,es-toolkit 表现出显著的优势,主要得益于其函数之间的独立性,而 Lodash 的函数相互依赖,限制了导入单个方法时的优化。

功能es-toolkit@0.0.1lodash-es@4.17.21差异
sample88 字节2000 字节-95.6%
difference91 字节3190 字节-97.2%
sum152 字节413 字节-63.2%
debounce144 字节1400 字节-89.7%
throttle110 字节1460 字节-92.5%
pick657 字节3860 字节-83.0%
zip797 字节1790 字节-55.5%

性能对比

es-toolkit 在性能上的提升更为显著,特别是在处理大数据集时,对 JavaScript 应用程序有实际影响。

功能es-toolkit@0.0.1lodash-es@4.17.21差异
omit4,767,360 次403,624 次11.8倍
pick9,121,839 次2,663,072 次3.43倍
differenceWith9,291,897 次4,275,222 次2.17倍
difference10,436,101 次5,155,631 次2.02倍
intersectionWith8,074,722 次3,814,479 次2.12倍
intersection9,999,571 次4,630,316 次2.15倍
unionBy6,435,983 次3,794,899 次1.69倍
union5,059,209 次4,771,400 次1.06倍
dropRightWhile7,529,559 次5,606,439 次1.34倍
groupBy5,000,235 次5,206,286 次0.96倍

兼容性层

es-toolkit 提供了 Lodash 的兼容层,帮助开发者进行迁移。要使用兼容层,只需将导入路径从 es-toolkit/array 改为 es-toolkit/compat。兼容层可能会对包大小和性能产生轻微影响,因此在使用前建议对比两者的文档。

开发与许可

es-toolkit 由 Toss 开发,并采用 MIT 许可证发布。为了确保兼容性,它还对 Lodash 的测试进行了修改。

使用方法

要开始使用 es-toolkit,可以访问其 GitHub 仓库,或通过 CLI 使用 npm i es-toolkit 命令直接安装。

阅读 82
0 条评论