面向前端开发人员的 10 个很棒的 JS 库

本贴最后更新于 1630 天前,其中的信息可能已经渤澥桑田

转:前端小智

虽然 JavaScript 本身很棒,但有它对应生态圈也很重要,这些圈会让 JS 更好。开发人员在开始一个新的中等项目时经常喜欢重新写轮子,这是一个糟糕的策略,使用第三方库是有意义的。因为这样的库有明确的用途,有更长生成的迭代,如果遇到问题更容易找到解决方法,最主要的一点是提高开发效率,缩短开发周期。

这里并不是说我们每个项目都要使用第三方库。 在我们的职业生涯初期,最好自己能编写代码以进行学习。 但是在许多项目中,在有意义的地方使用库是一个不错的策略。

这里推荐 10 个 JS 库,这些库都有很好的文档,也非常流行,并一直在维护中。

1. Ramda

github:https://github.com/ramda/ramda

文档:https://ramdajs.com/docs/

Ramda 是一个用于函数式编程的很酷的 JS 库,目前在 GitHub 上有 18000 个星星。JS 的一个优点是开发人员可以选择函数式编程还是面向对象编程。这两种方法各有利弊,但是如果你喜欢函数式编程,那么一定要看看 Ramda

主要功能是:

  • 不变性和无副作用的函数
  • 几乎所有的函数都是自动柯里化的
  • 参数设置为 Ramda 函数,便于进行柯里化

2. Lodash

github: https://github.com/lodash/lodash

文档: https://lodash.com/

Lodash 仍然是最流行和最有用的 JS 库之一。它免去了处理字符串、数组、对象等的麻烦。目前它在 GitHub 上有 43000 颗星星。

有用的功能:

  • 遍历字符串,对象和数组
  • 创建复合函数
  • 操作和测试值

3. Moment

github: https://github.com/moment/moment

文档: https://momentjs.com/

如果必须处理日期的操作、验证、解析或格式化,Moment 可能是最好的 JS 库。它很轻,很完善,在 GitHub 上有 43000 多颗星,它可以在浏览器和 Node.js 中工作。

以下是一些有关 Moment 的示例:

moment().startOf('day').fromNow(); //8 hours ago
moment('2019-15-11').isValid() //false
moment('2019-02-21').isValid() //true

4. Highlight.js

github: https://github.com/highlightj...

文档: https://highlightjs.org/

Highlight.js 是一个用于语法高亮显示的库,可在浏览器和服务器上使用。 它几乎可以与任何 Markdown 一起使用,并具有自动语言检测功能。

Highlight.js 将在 <pre> <code> 标记之间搜索编程代码,尝试自动检测语言并突出显示语法。 它还支持不同的配色方案。

下面是一个用 JS 编写的代码片段和来自代码编辑器的公共主题的示例

image.png

5. D3

github: https://github.com/d3/d3

文档: https://d3js.org/

D3 是最流行的数据可视化库,目前在 GitHub 上有 89,500 星。 它使用 Web 标准,并利用现代浏览器的强大功能,使数据栩栩如生。

image.png

6. Three.js

github: https://github.com/mrdoob/thr...

文档: https://threejs.org/

Three.js 是出色的 JS 3D 库,它使用 WebGL 作为主要渲染器,但也支持其他渲染器,例如 Canvas 2DSVGCSS3D。 它在 GitHub 上有 58,000 个 Star,我们可以用它创建非常酷的东西。

image.png

7. Voca

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

文档: https://vocajs.com/

Voca 是一个用于处理字符串的优秀 JS 库。目前在 GitHub 上有 2,800 颗星。我们可以使用它来操作字符串,如更改大小写、修剪、pad、slugify、latinise、截断、转义等。

其他功能包括:

  • 完整的函数集,可操纵,chop,格式化,转义和查询字符串
  • 易于阅读和搜索的文档
  • 支持多种环境,例如 Chrome,Firefox,Node.js
  • 100%的代码覆盖率,没有依赖性

8. Immutable.js

github: https://github.com/immutable-...

文档: https://immutable-js.github.i...

使用不可变数据结构具有一些主要优点,例如简化了应用程序开发,无防御性拷贝以及高级缓存概念。

Immutable.js 供了不变的数据结构,如列表,堆栈,映射,集合等。

9. Hammer.js

github: https://github.com/hammerjs/h...

文档: http://hammerjs.github.io/

Hammer.js 是一个 JS 库,具有 20,900 个 GitHub Stars,可为 Web 应用程序带来多点触摸手势。 它很小,没有任何依赖性,并且可以识别由触摸,鼠标或指针事件产生的手势。 默认情况下,它会添加用于点击,双击,滑动,按下等的识别器,但是您可以定义自己的此类识别器集。

10. Leaflet

github: https://github.com/Leaflet/Le...

文档: https://leafletjs.com/

在创建移动友好的交互式地图时,Leaflet 是一个很棒的 JS 库。它是开源的,在 GitHub 上有 26700 个星星,非常轻量,并且拥有大多数开发人员需要的所有特性。

它可以在所有主流的移动和桌面平台上开箱即用,可以通过插件进行扩展,并且有一个文档良好的、简单的 API。

image.png

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...