多是你見過最好的 React Hooks 庫

ahooks 是由螞蟻 umi 團隊、淘系 ice 團隊以及阿里體育團隊共同建設的 React Hooks 工具庫。ahooks 基於 React Hooks 的邏輯封裝能力,提供了大量常見好用的 Hooks,能夠極大下降代碼複雜度,提高開發效率。
ahooks 致力成爲和 antd/fusion 同樣的 React 基礎設施,幫助開發者在邏輯層面省去大量的重複工做。
react

ahooks 前身

ahooks 的前身是螞蟻開源的 @umijs/hooks,能夠說 ahooks 是 umi hooks 的 2.0 版本。
umi hooks 從 2019年9月 發佈 v1.0 以後,一路前行,獲得了很多用戶的青睞。截至當前,umi hooks 在社區收穫了 2.2k star,npm 周下載量最高 7000+,tnpm 周下載量 8000+。
同時在螞蟻內部,umi hooks 也已經成爲標準 React Hooks 庫,截至當前,能統計到的項目中有 600+ 項目依賴了 umi hooks。而且 useRequest 也已經成爲 umi3 內置請求方案
但 umi hooks 半年來的野蠻生長,也帶來了一些反作用。git

  • 部分 Hooks 設計不合理,後期進行了部分 Hooks 合併,廢棄了一些 Hooks。
  • 沒有制定 API 標準,致使已有 Hooks 的 API 格式與命名不統一。

咱們但願有個機會能完全解決這兩個心病。 github

共建

隨着 React Hooks 的發展,各個團隊都開始嘗試使用 Hooks 代替 Class,Hooks 正逐漸成爲 React 組件的主流寫法。得益於 Hooks 的邏輯封裝能力,咱們能夠將常見的邏輯封裝起來,以減小代碼複雜度。或者使用社區上別人封裝的 Hooks,好比 react-use 等。
固然出於種種緣由,不少團隊但願建設本身的 Hooks 庫。但在建設過程當中,能發現各個 Hooks 庫提供的 Hooks 大同小異,尤爲是基礎類 Hooks 幾乎都是同樣的。
基於避免重複建設的目的,以及 umi hooks 的積累,咱們與集團 ice 團隊,阿里體育團隊一拍即合,決定基於 umi hooks 共同建設 React Hooks 工具庫,ahooks 隨即誕生。 npm

現狀

通過一個半月的改造,ahooks 已經發布了 v1.0 版本,並開源在 github.com/alibaba/hoo… 倉庫,你能夠放心的在生產環境使用。
ahooks 相較於 umi hooks,有了本身的 API 規範,咱們基於這套規範,從新整理了全部 Hooks 的 API,你能夠在這裏找到升級詳情。
在 ahooks 的開發過程當中,集團內也有其它不少部門參與進來,出謀劃策,感謝你們。 api

規劃

如前面所說,ahooks 致力成爲向 antd/fusion 同樣的 React 基礎設施。爲了達到這個目標,咱們正在全力開發更多的 Hooks,同時咱們也指望你們能將平常封裝的 Hooks 貢獻到 ahooks 中,一塊兒來幫助 ahooks 成長。markdown

  • 你能夠提交一個 RFC,咱們會幫你評估 Hooks 的必要性及 API 的規範。
  • 你也能夠提交一個 idea,咱們幫你實現。

除了 Hooks 庫,咱們也在準備 React Hooks 系列教程。不得不認可,雖然 React Hooks 很好用,但其中確實有有很多的明坑暗坑,咱們但願經過系列教程,減小你們在使用 Hooks 時的困惑,避免走彎路。 antd

能夠不用看的附錄

  • 推薦以前的幾篇文章,能夠幫助你對 umi hooks/ahooks 有一個更深刻的認識:async

  • 應該不少人想問,爲何不直接用 react-use,而是要本身建設 React Hooks 庫呢?ide

    • 正如以前不少文章中說的,react-use 大版本升級太快了,實在跟不上。我第一次用的時候是 v9,上次寫文章的時候是 v13,如今是 v15。若是大面積使用起來,升級起來太麻煩了。
    • 另一點就是 react-use 的 API 設計也是沒有規範的,同類 Hooks 的 API 各類各樣。
    • 固然不能否認的是,react-use 是社區最流行的 Hooks 庫,爲 ahooks 提供了不少靈感。
相關文章
相關標籤/搜索