
英文 | https://javascript.plainenglish.io/9-best-vanilla-javascript-utilities-libraries-ff752592dfb5
翻譯 | 楊小二
1、cypress
位址:https://github.com/cypress-io/cypress
對浏覽器中運作的任何内容進行快速可靠的測試。
- Cypress允許你建立可以與單擊按鈕互動的測試,填寫表格,這個很好地支援定期更新。
- 唯一的缺點是你會發現Cypress的學習曲線有點寬,因為它需要一些時間,這取決于你之前測試JavaScript應用程式的知識。
- 此外,另一個主要問題是它目前不支援Safari。
2、 rollup
位址:https://github.com/rollup/rollup
下一代 ES 子產品打包器。
- Rollup是一個子產品打包器,它使用标準化的 ES 子產品格式進行代碼,而不是以前的解決方案,例如CommonJS & AMD。
- 它可以輕松優化ES子產品以在現代浏覽器中更快地本地加載,并放置允許ES 子產品工作流的遺留子產品格式。
- 由于支援tree shaking,它是一個很棒的子產品打包器,雖然不像Parcel或Webpack那樣出名,但它仍然随着響應式更新而增長。
3、day.js
位址:https://github.com/iamkun/dayjs
2KB 不可變日期和時間庫。
- 在JavaScript 中,你最有可能使用日期和時間庫建構應用程式,而days.js是Moment.js的絕佳替代品。因為它更輕巧并且具有所有相同的 API。
- 文檔也很棒,新開發人員可以在更短的時間内輕松适應day.js。
4、 immer
位址:https://github.com/immerjs/immer
通過改變目前狀态來建立下一個不可變狀态。
- 非常輕量級的包(5KB),有助于處理React應用程式中的不可變狀态,我們隻需要通過不幹擾原始狀态來更改虛拟狀态,然後,一旦所有更改完成,它就會推送下一個狀态。
- 它的樣闆代碼很少,是以你的代碼看起來更簡潔,結構更簡潔。
5、jsdoc
位址:https://github.com/jsdoc/jsdoc
用于 JavaScript 的 API 文檔生成器。
- 如果你需要記錄你的個人功能,那麼jsdoc是一個很好的工具。生成的檔案非常基礎,用于文檔目的,你可以在短時間内擁有自己的功能文檔。
- 該文檔對于新開發人員來說也很棒且易于使用,并且在開始使用jsdoc時不需要太多經驗。
- 特别是如果你在團隊中工作,它會提高你工作流程的整體生産力,因為你已經定義了自己的功能。
6、ramda
位址:https://github.com/ramda/ramda
實用的JavaScript函數式 。
- Ramda強調更純粹的函數風格,不變性和無副作用的函數是其設計理念的核心,幫助你用簡潔優雅的代碼完成工作。
- 這些函數是自動柯裡化的,這使你不提供最終參數即可從舊函數建構新函數。
- 唯一的缺點是它可能很快變得不可讀,是以建議避免連結太多函數。
7、 p-limit
位址:https://github.com/sindresorhus/p-limit
以有限的并發運作多個 Promise 傳回和異步函數。
- 如果你想限制 JavaScript 中的 promise 或同時阻止來自伺服器的所有請求調用,那麼這個庫适合你。
8、Akita
位址:https://github.com/datorama/akita
為 JavaScript 應用程式量身定制的狀态管理庫。
- 在開始之前你需要知道RxJS風格的observables以及基本的TypeScript文法。
- 如果你正在使用 Angular 應用程式,建議使用 Akita,因為與ngrx和ngxs相比,它更容易。
9、js-cookie
位址:https://github.com/js-cookie/js-cookie
用于處理浏覽器 cookie 的輕量級 JavaScript API。
- 這個庫使代碼在處理 cookie 時更加清晰和可用,你可以使用一個簡單的 API 來管理 cookie,其中包括開發人員需要的一切。