超火前端工具庫 Radash,聲稱要取代 Lodash
Radash 取代 Lodash?
最近 Radash 這個庫火的一塌糊涂,這是一個類似于 Lodash 的前端工具庫,短短時間內在 github 上就擁有 3.4k star
然后網上就會有一個論調:Radash 要取代 Lodash 了!!!
Lodash 存在的問題
自Lodash問世以來,它通過簡化對數組、數字、對象、字符串等的操作,極大地便利了JavaScript的使用。然而,隨著前端技術的進步,純函數和函數式編程的概念已深入人心,成為社區的主流。在這樣的背景下,Lodash的某些功能顯得不夠前沿。
Lodash是一個十年前誕生的庫,旨在解決當時JavaScript開發者面臨的挑戰。但隨著時間的推移,這些早期問題對現代開發者而言已經不再是難題。尤其是TypeScript的流行,更加劇了對基礎庫,如Lodash,應提供更精確類型定義的期待
過舊的語法
隨著JavaScript引入了可選鏈和空值合并操作符,Lodash庫中的許多函數顯得不那么必要了。以Lodash的_.filter函數為例,它曾經非常適用于遍歷對象數組并基于屬性進行篩選,即便某些對象缺少這些屬性也能安全運行。然而,現代JavaScript的新特性已經讓這類操作變得更加簡單直接。
圖片
如今,借助可選鏈操作符,我們能夠以更簡潔的方式實現相同的功能,而無需依賴任何外部庫。
圖片
同樣,隨著 JavaScript 和 TypeScript 的最新進展,傳統的函數如 .get、.map 和 _.size 等已經變得不那么必需了。更重要的是,就性能而言,像可選鏈這類語言特性的效率遠超過了 Lodash 的 _.get 函數,其速度幾乎是后者的兩倍。
更新不頻繁
Lodash 上一次發版已經是三年前了
圖片
Radash
Radash 的特點是:
- 它是用 Typescript 編寫的
- 源碼中使用的語法更加的新
- 提供了一些 Lodash 沒有的實用方法
tryit 方法
tryit 方法相當于可以幫你給異步操作加一層 try catch,有利于操作的兜底以及錯誤的捕獲
圖片
parallel 方法
parallel 你可以理解為它是 Promise.all 的加強版,它不止能幫你做多個異步操作的并發處理,還能幫你控制并發數量
圖片
retry 方法
retry 可以幫你做異步操作的失敗重試,并且你可以配置重試延遲、重試次數
圖片
counting 方法
counting 可以幫你計算符合條件的項的個數
如統計年齡大于30的人數:
圖片
range 方法
range 幫你創建一個指定范圍內數字的數組
圖片
list 方法
list 方法幫你創建一個包含指定元素的數組,有點類似于 Array.prototype.fill
圖片
Radash 能取代 Lodash 嗎?
我覺得短時間內 Radash 肯定取代不了 Lodash!!!
雖然 Radash 提供了很多實用方法,但是其實這些方法并不是項目中不可或缺的。。
雖然 Lodash 比較老,但是 Lodash 提供的方法已經夠大部分項目用了
我們來看看周下載量對比,Lodash 是 Radash 的 700 倍!!!
圖片