推薦 10 個 JS 庫,這些庫都有很好的文檔奶赔,也非常流行惋嚎,并一直在維護(hù)中。
1. Ramda
github:https://github.com/ramda/ramda
文檔:https://ramdajs.com/docs/
Ramda 是一個用于函數(shù)式編程的很酷的 JS 庫站刑,目前在GitHub上有18000個星星另伍。JS 的一個優(yōu)點(diǎn)是開發(fā)人員可以選擇函數(shù)式編程還是面向?qū)ο缶幊獭_@兩種方法各有利弊笛钝,但是如果你喜歡函數(shù)式編程质况,那么一定要看看Ramda愕宋。
主要功能是:
- 不變性和無副作用的函數(shù)
- 幾乎所有的函數(shù)都是自動柯里化的
- 參數(shù)設(shè)置為Ramda函數(shù)玻靡,便于進(jìn)行柯里化
2. Lodash
github: https://github.com/lodash/lodash
文檔: https://lodash.com/
Lodash仍然是最流行和最有用的 JS 庫之一。它免去了處理字符串中贝、數(shù)組囤捻、對象等的麻煩。目前它在GitHub上有43000顆星星邻寿。
有用的功能:
- 遍歷字符串蝎土,對象和數(shù)組
- 創(chuàng)建復(fù)合函數(shù)
- 操作和測試值
3. Moment
github: https://github.com/moment/moment
文檔: https://momentjs.com/
如果必須處理日期的操作、驗證绣否、解析或格式化誊涯,Moment可能是最好的 JS 庫。它很輕蒜撮,很完善暴构,在GitHub上有43000多顆星跪呈,它可以在瀏覽器和Node.js中工作。
以下是一些有關(guān)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/highlightjs/highlight.js
文檔: https://highlightjs.org/
Highlight.js 是一個用于語法高亮顯示的庫取逾,可在瀏覽器和服務(wù)器上使用耗绿。它幾乎可以與任何Markdown一起使用,并具有自動語言檢測功能砾隅。
Highlight.js
將在<pre> <code>
標(biāo)記之間搜索編程代碼误阻,嘗試自動檢測語言并突出顯示語法。它還支持不同的配色方案晴埂。
下面是一個用 JS 編寫的代碼片段和來自代碼編輯器的公共主題的示例
5. D3
github: https://github.com/d3/d3
文檔: https://d3js.org/
D3是最流行的數(shù)據(jù)可視化庫究反,目前在GitHub上有89,500星。它使用Web標(biāo)準(zhǔn)儒洛,并利用現(xiàn)代瀏覽器的強(qiáng)大功能奴紧,使數(shù)據(jù)栩栩如生。
6. Three.js
github: https://github.com/mrdoob/three.js
文檔: https://threejs.org/
Three.js是出色的JS 3D庫晶丘,它使用 WebGL 作為主要渲染器黍氮,但也支持其他渲染器,例如Canvas 2D浅浮,SVG和CSS3D沫浆。它在GitHub上有58,000個Star,我們可以用它創(chuàng)建非彻鲋龋酷的東西专执。
7. Voca
github: https://github.com/panzerdp/voca
文檔: https://vocajs.com/
Voca
是一個用于處理字符串的優(yōu)秀 JS 庫。目前在GitHub
上有2,800顆星郁油。我們可以使用它來操作字符串本股,如更改大小寫、修剪桐腌、pad拄显、slugify、latinise案站、截斷躬审、轉(zhuǎn)義等。
其他功能包括:
- 完整的函數(shù)集蟆盐,可操縱承边,chop,格式化石挂,轉(zhuǎn)義和查詢字符串
- 易于閱讀和搜索的文檔
- 支持多種環(huán)境博助,例如 Chrome,F(xiàn)irefox痹愚,Node.js
- 100%的代碼覆蓋率富岳,沒有依賴性
8. Immutable.js
github: https://github.com/immutable-js/immutable-js
文檔: https://immutable-js.github.io/immutable-js/
使用不可變數(shù)據(jù)結(jié)構(gòu)具有一些主要優(yōu)點(diǎn)罗心,例如簡化了應(yīng)用程序開發(fā),無防御性拷貝以及高級緩存概念城瞎。
Immutable.js
供了不變的數(shù)據(jù)結(jié)構(gòu)渤闷,如列表,堆棧脖镀,映射飒箭,集合等。
9. Hammer.js
github: https://github.com/hammerjs/hammer.js
文檔: http://hammerjs.github.io/
Hammer.js
是一個 JS 庫蜒灰,具有20,900
個GitHub Stars弦蹂,可為Web應(yīng)用程序帶來多點(diǎn)觸摸手勢。它很小强窖,沒有任何依賴性凸椿,并且可以識別由觸摸,鼠標(biāo)或指針事件產(chǎn)生的手勢翅溺。默認(rèn)情況下脑漫,它會添加用于點(diǎn)擊,雙擊咙崎,滑動优幸,按下等的識別器,但是您可以定義自己的此類識別器集褪猛。
10. Leaflet
github: https://github.com/Leaflet/Leaflet
文檔: https://leafletjs.com/
在創(chuàng)建移動友好的交互式地圖時网杆,Leaflet
是一個很棒的 JS 庫。它是開源的伊滋,在GitHub上有26700
個星星碳却,非常輕量,并且擁有大多數(shù)開發(fā)人員需要的所有特性笑旺。
它可以在所有主流的移動和桌面平臺上開箱即用韩脑,可以通過插件進(jìn)行擴(kuò)展圆兵,并且有一個文檔良好的悲没、簡單的API扒接。
作者:Simon Holdorf 譯者:前端小智 來源:medium
原文:https://hackr.io/blog/best-javascript-frameworks