JavaScript仍然是2018年最受欢迎和使用最为广泛的编程语言,因此JavaScript生态系统也会继续发展壮大。
然而,JavaScript的标准库仍然继续保持“短小精悍”的身材。为了填补标准库功能方面的空白,在过去几年中,GitHub上出现了很多流行的JavaScript库。以下列出了11个有用的库,这些库的维护状态均很活跃。
可能大多数人都知道这两个库。Underscore的目的是为JavaScript中的常见任务提供实用的函数。Lodash是下载量最大和被依赖最多的库之一,旨在为数组、字符串、object和argument对象提供更一致的跨环境迭代支持,并已成为Underscore的超集。这两个库由相同的核心贡献者维护,在技术选型时完全可以考虑使用它们。
Lodash - https://github.com/lodash/lodash
Underscore - https://github.com/jashkenas/underscore
在GitHub上的Star已经超过12,000,这个库专为函数式编程而设计,可以轻松创建不改变用户数据状态的函数式管道。Ramda的核心设计理念是创建具有不变性和无副作用的函数。所有的函数会被自动柯里化,并根据易用性安排参数的顺序。
Ramda - https://github.com/ramda/ramda
在GitHub上的Star已经超过6000,这个库是JavaScript和Node.js的数学扩展库,与JavaScript内置的Math库兼容。该库包含一个灵活的表达式解析器,能够运行符号计算,并提供了一系列内置函数和常量。用户还可以对其进行扩展。
MathJS - https://github.com/josdejong/mathjs
在GitHub上的Star已经超过37,000,是一个JavaScript日期和时间操作库,用于解析、验证、操作和格式化日期。Moment可以在浏览器和Node.js中运行。从2.10.0版本开始迁移到ECMAScript 6。
Moment - https://github.com/moment/moment
另外两个同类的库:
Date-fns(10,000个Star)- https://github.com/date-fns/date-fns
DateJS - https://github.com/datejs/Datejs
在GitHub上的Star已经超过3500,主要用于处理本地对象。这个库支持自定义构建,还提供了模块化的npm包,因此可以只使用其中必要的部分模块(也可以与Bit结合使用),用户还可以通过自定义方法或使用插件来应对特定的使用场景。
Sugar - https://github.com/andrewplummer/Sugar
在GitHub上的Star将近5000,是一个功能强大的JavaScript库,它的lazy引擎“尽可能地少做一些工作”,同时保持足够的灵活性。
Lazy - https://github.com/dtao/lazy.js
在GitHub上的Star超过3200,主要用于处理JavaScript中的数组和对象,无需其他依赖,提供了几十个有用的功能和API,这些API几乎与Laravel Collections 5.5相同。该库的维护状态很活跃,值得关注。
CollectJS - https://github.com/ecrmnn/collect.js
Chance在GitHub上的Star超过3200,一个简单的随机对象生成器,用于生成随机的字符串、数字等。在编写自动化测试代码或任何需要随机对象的地方,可以用它来减少单调的工作。
ChanceJS - https://github.com/chancejs/chancejs
在GitHub上的Star将近40,000个,提供了8种不同类型的数据可视化,每种类型都支持动画和定制。借助Chart.js,我们可以使用<canvas>标签创建简单的HTML5图表,而且在所有现代浏览器中都具有出色的渲染性能。
ChartJS - https://github.com/chartjs/Chart.js
在GitHub上的Star超过3500个,由styled-components团队开发,是一个非常优秀的轻量级工具集,支持使用JavaScript编写具有SASS风格辅助函数和mixin的样式。该库与styled-components、Aphrodite、Radium或简单的内联样式兼容。这个库可以在GitHub上找到,Bit社区(非官方)也单独提供所有的功能,因此可以单独安装、导入和使用。
Polished - https://github.com/styled-components/polished
Bit社区提供的单独安装版 - https://bitsrc.io/ranm8/polished
Mout.js是一组模块化的JavaScript库,可以在浏览器或node.js中运行,提供类似于其他语言标准库(Python、Ruby、PHP等)中的辅助方法。mout.js允许仅加载必需的模块或函数,并提供了一致的API,规范了跨浏览器行为。
Mout - https://github.com/mout/mout
特别推荐
一个模块化和高性能的库,已经被用在Bit的web hub中。这些函数可使用NPM/Yarn进行单独安装,用户也可以创建自己的集合,并从不同的库和项目中收集有用的功能。
Bit utils - https://bitsrc.io/bit/utils
一个用于操作字符串的JavaScript库。它提供的功能包括大小写转换、trim、pad、slugify、latinise、sprintf、truncate、escape等。用户可以加载单个函数,以便最小化应用程序的构建。该库具有很高的测试覆盖率,并且不依赖其他库。
Voca - https://github.com/panzerdp/voca
只有400个Star,这个有趣的项目基本上是一个简单但有用的JavaScript片段集合,具有很高的测试覆盖率,文档也很齐全。
Licia - https://github.com/liriliri/licia
感谢覃云对本文的审校。
领取专属 10元无门槛券
私享最新 技术干货