成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ahooks 3.0 來了!高質量可靠的 React Hooks 庫

開發 前端
ahooks v3.0 的 slogan 是“高質量可靠的 React Hooks 庫”,這是我們為之奮斗的目標,希望 ahooks 成為每一位開發者的必備基礎庫之一。

[[439200]]

ahooks[1] 是一套開源的 React Hooks 庫,封裝了大量好用的 Hooks。在當前 React 項目研發過程中,一套好用的 React Hooks 庫是必不可少的,希望 ahooks 能成為您的選擇。

自 2019 年 8 月 ahooks(umi hooks)發布第一個版本,到今天已經歷經了 2 年的發展,在國內外社區也獲得了很多同學的認可。目前 ahooks 2.0 的成績主要包括:

在阿里內部覆蓋了上千個前端應用

  • 開發了 60+ Hooks
  • npm & tnpm 周下載量 7w+
  • GitHub star 7.4k

在這兩年的發展過程中,隨著對 React Hooks 的理解越來越深入,我們能看到 ahooks 2.0 設計中的很多不足。在這個背景下,我們決定開發 3.0 版本。

ahooks 3.0 的目標是建設 高質量可靠的 React Hooks 庫,我們希望成為像 lodash 一樣的穩定的基礎依賴。相較于 2.0,具有以下幾個優勢:

  • 全面支持 SSR
  • 全新的 useRequest
  • 所有的輸出函數地址是固定的,避免閉包問題
  • DOM 類 Hooks 支持 target 動態變化
  • 更合理的 API 設計
  • 解決了在嚴格模式(Strict Mode)下的問題
  • 解決了在 react-refresh(HRM)模式下的問題
  • 新增了更多 Hooks
  • 修復了很多已知問題

全面支持 SSR

React Hooks 在 SSR 場景下,普遍會碰到“DOM/BOM 缺失”、“useLayoutEffect 警告”兩個問題。ahooks v3.0 徹底解決了這兩個問題,你可以安心的將 ahooks 使用到 SSR 場景了。

更多內容可以參考《React Hooks & SSR[2]》

全新的 useRequest

useRequest 是 ahooks 使用量最高的 Hook,同時也是 issue 量最多的 Hook。總結 useRequest 之前最大的問題是:

  • 代碼拆分不合理,所有的功能混合在一個文件中,改動起來非常復雜
  • 部分功能上線前沒有充分論證,導致功能設計不合理,但是也下不掉
  • 融合了 pagination 和 loadMore 的邏輯,導致 ts 類型復雜到難以想象

ahooks v3.0 版本對 useRequest 進行了完全重寫:

  • 通過插件式組織代碼,核心代碼極其簡單,所有高級功能均是通過插件實現
  • 仔細論證了提供的所有的能力,保證上線的特性均是最優解。對存疑的能力,漸進添加
  • 所有的參數支持動態變化
  • 刪除了 pagination 和 loadMore 邏輯,單獨拆分出其它 Hooks 提供相應能力
  • 避免了 ts 類型重載,可以更方面的基于 useRequest 封裝更高級的 Hooks
  • 修復了大量遺留問題

更多內容可以參考《全新的 useRequest[3]》

函數特殊處理,避免閉包問題

ahooks v3 通過對輸入輸出函數做特殊處理,盡力幫助大家避免閉包問題。這個能力我覺得是 ahooks 做的比較激進的地方,但確實能對用戶提供非常好的使用體驗。

1.ahooks 所有的輸出函數,地址都是不會變化的

  1. const [state, setState] = React.useState(); 

眾所周知,React.useState 返回的 setState 函數地址是固定的,使用時不需要考慮奇奇怪怪的問題,不需要把 setState 放到各種依賴中。ahooks v3.0 所有 Hooks 返回的函數,都擁有和 setState 一樣的特性,地址不會變化,放心大膽的使用即可。

2.所有用戶輸入的函數,永遠使用最新的一份

對于接收的函數,ahooks v3 會做一次特殊處理,保證每次調用的函數永遠是最新的。

  1. const [state, setState] = useState(); 
  2.  
  3. useInterval(() => { 
  4.   console.log(state); 
  5. }, 1000); 

比如以上示例,useInterval 任何時候調用的函數永遠是最新的,也就是 state 永遠是最新的。

更多內容可以參考《ahooks 輸入輸出函數處理規范[4]》

更多問題修復

  • DOM 類 Hooks 支持 target 動態變化,相關文檔可見《DOM 類 Hooks 使用規范[5]》
  • v3 修復了在嚴格模式下的一些問題。參考《React Hooks & strict mode[6]》
  • v3 修復了在 react-refresh(HRM)模式下的一些問題。參考《React Hooks & react-refresh(HMR)[7]》

更多改動參考《v2 to v3[8]》

結尾

ahooks v3.0 的 slogan 是“高質量可靠的 React Hooks 庫”,這是我們為之奮斗的目標,希望 ahooks 成為每一位開發者的必備基礎庫之一。

感謝 ahooks 的共建者和使用者!歡迎試用 v3.0!

  1. $ npm install --save ahooks@next 
  2. or 
  3. $ yarn add ahooks@next 

文檔:https://ahooks.js.org/zh-CN[9]

源碼:https://github.com/alibaba/hooks[10]

參考資料

[1]ahooks: https://github.com/alibaba/hooks

[2]React Hooks & SSR: https://ahooks.js.org/zh-CN/guide/blog/SSR/

[3]全新的 useRequest: https://ahooks.js.org/zh-CN/guide/upgrade#%E5%85%A8%E6%96%B0%E7%9A%84-userequest

[4]ahooks 輸入輸出函數處理規范: https://ahooks.js.org/zh-CN/guide/blog/function

[5]DOM 類 Hooks 使用規范: https://ahooks.js.org/zh-CN/guide/dom

[6]React Hooks & strict mode: https://ahooks.js.org/zh-CN/guide/blog/strict

[7]React Hooks & react-refresh(HMR): https://ahooks.js.org/zh-CN/guide/blog/hmr

[8]v2 to v3: https://ahooks.js.org/zh-CN/guide/upgrade

[9]https://ahooks.js.org/zh-CN: https://ahooks.js.org/zh-CN

[10]https://github.com/alibaba/hooks: https://github.com/alibaba/hooks

 

責任編輯:姜華 來源: 前端技術磚家
相關推薦

2022-08-09 13:22:26

Hooksreactvue

2017-07-14 09:54:47

代碼函數程序

2021-08-08 14:26:24

SQL數據庫開發

2011-05-31 13:43:46

外鏈

2011-03-04 10:11:09

JavascriptAPI

2012-09-13 10:44:18

Python代碼

2023-07-06 14:51:30

開發高質量軟件

2015-08-03 10:40:59

程序員代碼質量Quora

2015-08-25 08:29:11

編寫高質量命名

2011-12-29 15:02:27

JavaScript

2024-03-07 11:39:24

HadolintDockerfile工具

2015-08-25 08:42:36

高質量代碼命名

2019-05-06 15:20:31

華為

2022-10-24 08:10:21

SQL代碼業務

2020-09-18 07:57:10

代碼編碼開發

2015-08-19 08:54:23

Android開發框架

2011-07-20 15:26:52

C++

2023-10-15 12:07:09

2011-06-24 14:59:41

外鏈
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区视频播放 | 欧美日韩三级 | 成人啊啊啊 | 免费日韩网站 | 国产 亚洲 网红 主播 | 欧美一区二区三区久久精品 | 免费观看一级特黄欧美大片 | 999久久| 亚洲综合国产 | 鸳鸯谱在线观看高清 | 亚洲精品国产电影 | 免费视频二区 | 亚洲视频一区 | 国产精品亚洲第一 | 亚洲国产二区 | 亚洲视频在线看 | av黄色在线 | 久久久国产一区二区三区 | 91久久夜色 | 亚洲最大成人综合 | 91精品国产乱码久久久久久久久 | 欧美视频免费 | 免费一级黄色录像 | 亚洲麻豆| 九九精品在线 | 91精品国产高清一区二区三区 | 51ⅴ精品国产91久久久久久 | 国产精品久久久久久久久久免费看 | 成人福利电影 | 精品视频一区二区三区四区 | 国产精品视频999 | 爱综合| 一区二区三区观看视频 | 伊人网在线看 | 久久久久久高潮国产精品视 | 日韩一级免费观看 | 国产精品一区久久久 | 天天拍天天插 | 欧美一区免费 | 不卡av在线| 国产福利资源在线 |