2018年你應該知道的 15個 JavaScript 實用程式庫

15個有用的JavaScript實用程式庫,可加速您的前端開發。
2018年 JavaScript在仍然是 ofollow,noindex" target="_blank">最受歡迎和最廣泛使用 的程式語言,圍繞它的生態社群也在不斷的完善和壯大。
儘管如此,JavaScript 的“標準庫”仍然會 保持著這種蓬勃發展的狀態 。 為填補這一空白,許多流行的實用程式庫在過去幾年中在GitHub上發展壯大。
以下是有用的且經常維護的庫的列表推薦給大家:
Underscore & Lodash (dah)
大多數人可能已經知道了這兩個庫。 Underscore 是構建 JavaScript 中常見任務提供實用程式功能。 Lodash是NPM下載量最大,依賴性最多的包,旨在為陣列,字串,物件和引數物件提供更一致的跨環境迭代支援。 它已經成為 Underscore 的超集,並且由相同的核心貢獻者維護。 這兩個庫絕對應該在你的技術棧中。愚人碼頭注:兩者不同的地方可以看看 stackoverflow 上的回答 。
Lodash : https://github.com/lodash/lodash
Lodash 中文文件: http://www.css88.com/doc/lodash/
Underscore : https://github.com/lodash/lodash
Underscore 中文文件: http://www.css88.com/doc/underscore/
Ramda
這個JS 實用程式庫超過 12K stars,Ramda庫專為函數語言程式設計而設計,可以輕鬆建立函式式 pipeline、且從不改變使用者已有資料。 不可變性和無副作用函式是其設計理念的核心。 所有函式都自動進行柯里化 curry,並且相應地安排傳遞的引數以便於使用。
Ramda : https://github.com/ramda/ramda
你也可以看看 immutable.js
如果你對 JavaScript 函數語言程式設計還不是很瞭解,可以看看下面這些文章
- JavaScript 中的 Currying(柯里化) 和 Partial Application(偏函式應用)
- 一步一步教你 JavaScript 函數語言程式設計(第一部分)
- 一步一步教你 JavaScript 函數語言程式設計(第二部分)
- 一步一步教你 JavaScript 函數語言程式設計(第三部分)
- JavaScript 函數語言程式設計術語大全
MathJS
超過 6K 的stars,Math.js是一個 JavaScript 和 Node.js 中應用最廣泛的 math 數學擴充套件庫,它與JavaScript的內建 Math 庫相容。 該庫包含一個靈活的表示式解析器,能夠執行符號計算,並帶有大量內建函式和常量。 你甚至可以自己擴充套件它。
Math.js : https://github.com/josdejong/mathjs
Moment/date-fns
Moment 擁有超過40K的stars,moment.js是一個JavaScript日期和時間操作庫,用於解析,驗證,操作和格式化日期。 Moment旨在在瀏覽器和Node.js 環境中工作。 從 v2.10.0 開始,程式碼用ECMAScript 6模組編寫。
Date-fns 是一個越來越流行的(超過11K的stars,每週超過50萬次NPM安裝)JavaScript 時間操作庫,許多開發人員選擇它來替換 moment.js( 參見 比較 ),提供超過130個函式來操作 瀏覽器 和 Node.js 中的日期。 Date-fns是使用純函式構建的,並且在不更改傳遞日期例項的情況下保持不可變(immutable)。 它適用於webpack,Browserify或Rollup等打包器,並且還支援 tree-shaking。
moment.js : https://github.com/moment/moment/
date-fns : https://github.com/date-fns/date-fns
Sugar
Sugar 擁有超過3.5K個stars,Sugar是一個用於處理本機物件的JavaScript實用程式庫。 自定義構建和模組化的npm包,允許您只使用您需要的東西,使用者可以定義方法或使用外掛來處理專門的用例。 值得一試。
Sugar : https://github.com/andrewplummer/Sugar
Lazy
Lazy 擁有5K個stars,lazy.js是一個函式式的JavaScript庫。該庫的底層的實現都是懶執行的,也就是說盡量不做運算,除非站的需要。這個庫不依賴第三方庫,這裡有一個 demo 作為序列進行測試的現場演示,這裡是 API文件 。
lazy.js : https://github.com/dtao/lazy.js
CollectJS
CollectJS 擁有超過3.5K個stars,collect.js 是一個非常有前途的庫,並且不依賴於任何第三方庫,用於在JavaScript中處理陣列和物件,其中有許多有用的功能,並且API(幾乎)與 Laravel Collections 5.5相同。 該庫維護非常積極,值得關注。
collect.js : https://github.com/ecrmnn/collect.js/
ChanceJS
Chance是一個隨機字串,數字等生成器,非常簡單。有助於減少一些枯燥的工作,在你需要寫自動化測試或則其它你需要生成隨機的地方很有用。雖然只要3K個stars,這個庫非常有用,因為當我們被要求生成隨機的東西時,我們往往會重複編寫我們的程式碼。
chancejs : https://github.com/chancejs/chancejs
ChartJS
擁有近 40K 的 stars,chart.js是一個很好的少即是多的例子,提供8種不同的資料視覺化型別,每種型別都是動畫並且可自定義的。 Chart.js 允許您使用 <canvas>
標籤建立簡單的HTML5圖表,在所有現代瀏覽器中都具有出色的渲染效能。 絕對是列表中最有用和最優雅的庫之一。
chart.js : https://github.com/chartjs/Chart.js
Polished
Polished 擁有超過 3.5K 個stars,由 styled-components 團隊開發,Polished是一個非常輕量級的工具集,用於在JavaScript中使用Sass風格的輔助函式和mixin編寫樣式。 該庫與樣式元件,Aphrodite,Radium或純內聯樣式相容。
polished : https://github.com/styled-components/polished
Mout
Mout.js是 JavaScript 模組化實用程式的集合,可以在瀏覽器或node.js中用作AMD模組,提供類似於其他語言標準庫(Python,Ruby,PHP等)上的輔助方法。 mout.js允許您僅載入所需的模組/函式,提供一致的API並規範多個瀏覽器的行為。
mout : https://github.com/mout/mout
30 seconds of code
這並不是一個 JavaScript 庫,而是一個非常實用的 JavaScript 程式碼片段集合,全部採用 ES6 編寫,而且實用最簡單的方法實現,儘量確保你可以在30秒或更短的時間內理解這些程式碼,並使用。
30 seconds of code : https://github.com/30-seconds/30-seconds-of-code
30 seconds of code 中文翻譯: http://www.css88.com/30-seconds-of-code/
mojs
mojs是一個用於建立任何複雜的動態圖形和 Web 動畫庫,簡單而且動畫非常流暢。 它提供了宣告性語法。 它由簡單的宣告性API構建,因此它也與跨裝置瀏覽器相容。
mojs : https://github.com/legomushroom/mojs
Voca
用於字串操作的JavaScript庫。 它包括有用的函式,如change case, trim, pad,slugify,latinise,sprintf’y,truncate,escape等。 您可以在構建時載入單個函式來最小化應用程式。 該庫具有高測試覆蓋率,沒有其他依賴。
voca : https://github.com/panzerdp/voca
Licia
這是一個有趣的專案,只有400多個stars,基本上是一個簡單卻又很有用 JavaScript 程式碼片段集合,具有高階文件和測試覆蓋率。 v2.0 在 master 上釋出了預覽版本,並且維護和開發都很積極。
你可以在 Hackernoon的文章 中瞭解更多資訊。
licia : https://github.com/liriliri/licia
主要內容來自 https://blog.bitsrc.io/11-javascript-utility-libraries-you-should-know-in-2018-3646fb31ade ,在此內容上做了一些增加。