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