BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

2018,你需要知道的11个实用JavaScript库

| 作者 Jonathan Saring 关注 0 他的粉丝 ,译者 无明 关注 1 他的粉丝 发布于 2018年7月25日. 估计阅读时间: 8 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

JavaScript仍然是2018年最受欢迎和使用最为广泛的编程语言,因此JavaScript生态系统也会继续发展壮大。

然而,JavaScript的标准库仍然继续保持“短小精悍”的身材。为了填补标准库功能方面的空白,在过去几年中,GitHub上出现了很多流行的JavaScript库。以下列出了11个有用的库,这些库的维护状态均很活跃。

1.Underscore和Lodash(dah)

可能大多数人都知道这两个库。Underscore的目的是为JavaScript中的常见任务提供实用的函数。Lodash是下载量最大和被依赖最多的库之一,旨在为数组、字符串、object和argument对象提供更一致的跨环境迭代支持,并已成为Underscore的超集。这两个库由相同的核心贡献者维护,在技术选型时完全可以考虑使用它们。

Lodash - https://github.com/lodash/lodash

Underscore - https://github.com/jashkenas/underscore

2. Ramda

在GitHub上的Star已经超过12,000,这个库专为函数式编程而设计,可以轻松创建不改变用户数据状态的函数式管道。Ramda的核心设计理念是创建具有不变性和无副作用的函数。所有的函数会被自动柯里化,并根据易用性安排参数的顺序。

Ramda - https://github.com/ramda/ramda

3. MathJS

在GitHub上的Star已经超过6000,这个库是JavaScript和Node.js的数学扩展库,与JavaScript内置的Math库兼容。该库包含一个灵活的表达式解析器,能够运行符号计算,并提供了一系列内置函数和常量。用户还可以对其进行扩展。

MathJS - https://github.com/josdejong/mathjs

4. Moment

在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

5. Sugar

在GitHub上的Star已经超过3500,主要用于处理本地对象。这个库支持自定义构建,还提供了模块化的npm包,因此可以只使用其中必要的部分模块(也可以与Bit结合使用),用户还可以通过自定义方法或使用插件来应对特定的使用场景。

Sugar - https://github.com/andrewplummer/Sugar

6. Lazy

在GitHub上的Star将近5000,是一个功能强大的JavaScript库,它的lazy引擎“尽可能地少做一些工作”,同时保持足够的灵活性。

Lazy - https://github.com/dtao/lazy.js

7. CollectJS

在GitHub上的Star超过3200,主要用于处理JavaScript中的数组和对象,无需其他依赖,提供了几十个有用的功能和API,这些API几乎与Laravel Collections 5.5相同。该库的维护状态很活跃,值得关注。

CollectJS - https://github.com/ecrmnn/collect.js

8. ChanceJS

Chance在GitHub上的Star超过3200,一个简单的随机对象生成器,用于生成随机的字符串、数字等。在编写自动化测试代码或任何需要随机对象的地方,可以用它来减少单调的工作。

ChanceJS - https://github.com/chancejs/chancejs

9. ChartJS

在GitHub上的Star将近40,000个,提供了8种不同类型的数据可视化,每种类型都支持动画和定制。借助Chart.js,我们可以使用<canvas>标签创建简单的HTML5图表,而且在所有现代浏览器中都具有出色的渲染性能。

ChartJS - https://github.com/chartjs/Chart.js

10. Polished

在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

11. Mout

Mout.js是一组模块化的JavaScript库,可以在浏览器或node.js中运行,提供类似于其他语言标准库(Python、Ruby、PHP等)中的辅助方法。mout.js允许仅加载必需的模块或函数,并提供了一致的API,规范了跨浏览器行为。

Mout - https://github.com/mout/mout

特别推荐

* Bit utils

一个模块化和高性能的库,已经被用在Bit的web hub中。这些函数可使用NPM/Yarn进行单独安装,用户也可以创建自己的集合,并从不同的库和项目中收集有用的功能。

Bit utils - https://bitsrc.io/bit/utils

* Voca

一个用于操作字符串的JavaScript库。它提供的功能包括大小写转换、trim、pad、slugify、latinise、sprintf、truncate、escape等。用户可以加载单个函数,以便最小化应用程序的构建。该库具有很高的测试覆盖率,并且不依赖其他库。

Voca - https://github.com/panzerdp/voca

* Licia

只有400个Star,这个有趣的项目基本上是一个简单但有用的JavaScript片段集合,具有很高的测试覆盖率,文档也很齐全。

Licia - https://github.com/liriliri/licia

感谢覃云对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT