<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【工具】2102- es-toolkit:一個現(xiàn)代 JavaScript 工具包,體積更小,內(nèi)置 TypeScript 支持

          共 3354字,需瀏覽 7分鐘

           ·

          2024-07-14 11:02

          介紹

          es-toolkit 是一款先進(jìn)且具備高性能的現(xiàn)代化 JavaScript 實(shí)用工具庫,其擁有較小的捆綁包規(guī)模以及強(qiáng)大的類型注解,同時還提供了一系列非常不錯的函數(shù),適合日常使用。

          相較于 lodash 等替代方案,es-toolkit 所提供的包體積顯著減小(最多降低 97%),且運(yùn)行時性能提升 2 - 3 倍。大部分功能是借助最新的 JavaScript 特性實(shí)現(xiàn)。

          工具地址:https://es-toolkit.slash.page/
          倉庫地址:https://github.com/toss/es-toolkit

          亮點(diǎn)和功能

          es-toolkit 亮點(diǎn)包括:

          • es-toolkit 提供多種現(xiàn)代實(shí)現(xiàn)的“日常實(shí)用函數(shù)”,如 debounce、delay、chunk、sum 和 pick。
          • 設(shè)計(jì)時考慮了性能,es-toolkit 在現(xiàn)代 JavaScript 環(huán)境中“實(shí)現(xiàn)了 2-3 倍的性能提升”
          • es-toolkit 支持開箱即用,并且與其他庫相比,可以**將 JavaScript 代碼減少高達(dá) 97%**。
          • es-toolkit 包含“內(nèi)置的 TypeScript 支持”,提供直觀且強(qiáng)大的類型。它還提供諸如 isNotNil 等有用的類型保護(hù)。
          • es-toolkit 經(jīng)過了“百分之百的測試覆蓋率的實(shí)戰(zhàn)檢驗(yàn)”,確保其可靠性和穩(wěn)健性。

          es-toolkit 提供了一些常用功能:

          • Array: 數(shù)組操作工具,如 uniq 和 difference。
          • Function: 控制函數(shù)執(zhí)行的工具,包括 debounce 和 throttle。
          • Math: 數(shù)值操作工具,如 sum 和 round。
          • Object: 操作 JavaScript 對象的工具,如 pick 和 omit。
          • Predicate: 類型保護(hù)函數(shù),如 isNotNil。
          • Promise: 異步操作工具,如 delay。
          • String: 字符串操作工具,如 snakeCase。

          安裝

          es-toolkit 支持多種安裝方式:

          • “Node.js 安裝”:支持 Node.js 18 及更高版本;
          npm install es-toolkit
          • “Deno 安裝”:通過 JSR 安裝到 Deno,需注意包名與 npm 不同;
          deno add @es-toolkit/es-toolkit
          • “Bun 安裝”:也支持在 Bun 中的安裝。
          bun add es-toolkit

          使用示例

          // import from '@es-toolkit/es-toolkit' in jsr.
          import { debounce, chunk } from "es-toolkit";

          const debouncedLog = debounce((message) => {
            console.log(message);
          }, 300);

          // 這個調(diào)用將會被防抖處理
          debouncedLog("Hello, world!");

          const array = [123456];
          const chunkedArray = chunk(array, 2);

          console.log(chunkedArray);
          // 輸出: [[1, 2], [3, 4], [5, 6]]s

          包體積

          憑借自身現(xiàn)代化的達(dá)成,es-toolkit 大大降低了其包的大小,和 lodash 等其他的庫相較而言,能夠減少差不多 97%呢。這就讓 es-toolkit 在包的體積這一塊變成了最有效的那個選項(xiàng),當(dāng)中有一些實(shí)用的函數(shù),體積居然還不到 100 字節(jié)。
          下面是詳細(xì)的對比:

          性能

          es-toolkit 在設(shè)計(jì)的時候著重考慮了性能方面,和類似于 lodash 的那些替代庫相較而言,平均性能竟然提高了 2 倍。借由充分運(yùn)用現(xiàn)代 JavaScript API ,有的函數(shù)甚至能夠達(dá)成高達(dá) 11 倍的性能提升呢。

          在 MacBook Pro 14-inch (M1 Max, 2021) 上進(jìn)行了測試。


          往期回顧

          #

          如何使用 TypeScript 開發(fā) React 函數(shù)式組件?

          #

          11 個需要避免的 React 錯誤用法

          #

          6 個 Vue3 開發(fā)必備的 VSCode 插件

          #

          3 款非常實(shí)用的 Node.js 版本管理工具

          #

          6 個你必須明白 Vue3 的 ref 和 reactive 問題

          #

          6 個意想不到的 JavaScript 問題

          #

          試著換個角度理解低代碼平臺設(shè)計(jì)的本質(zhì)

          回復(fù)“加群”,一起學(xué)習(xí)進(jìn)步

          瀏覽 27
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩精品在线视频 | 色婷婷国产 | 激情五月婷婷网 | 亚洲AV无码久久寂寞少妇多毛 | 日本亚洲中文字幕 |