欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ahooks正式發(fā)布React?Hooks工具庫

 更新時間:2022年07月11日 10:42:53   作者:溫柔的養(yǎng)貓人  
這篇文章主要為大家介紹了ahooks正式發(fā)布值得擁有的React?Hooks工具庫使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

起因

從 React Hooks 正式發(fā)布到現(xiàn)在,越來越多的項目正在使用 Function Component 替代 Class Component,Hooks 這一新特性也逐漸被廣泛的使用。

然而在實踐的過程中,我們發(fā)現(xiàn)在很多常見的場景下,大部分邏輯是重復(fù)且可被復(fù)用的,如對數(shù)據(jù)請求的邏輯處理,對防抖節(jié)流的邏輯處理等,同樣的代碼經(jīng)常會在同一個或不同的項目中被重復(fù)的編寫 ??。

另一方面,由于 Hooks 雖然解決了 Class 組件的 this 、 LifeCycle 等學(xué)習(xí)成本過高的問題,但是也引入了諸如閉包、依賴地獄、不能在條件語句中使用的約定等等新的問題,導(dǎo)致對 Hooks 新手而言并不友好,經(jīng)常會遇到 Hooks 的各種奇怪問題而摸不著頭腦 ?? 。

解法

要解決上面的問題,讓我們回到 React Hooks 本身,相比 Class 而言 Hooks 到底給我們帶來了哪些優(yōu)勢,怎么利用這些優(yōu)勢來提升生產(chǎn)效率。對比而言,React Hooks 的主要特性之一就是可以在組件之間共享可復(fù)用的狀態(tài)邏輯,方便了開發(fā)者將業(yè)務(wù)邏輯和 UI 視圖進(jìn)行解耦,從而狀態(tài)與 UI 的界限會越來越清晰,順著這個思路,我們是否有機(jī)會將與業(yè)務(wù)無關(guān)的邏輯進(jìn)行抽象,封裝一套通用場景的純邏輯的 Hooks 工具方法,答案是肯定的,我們稱之為 ice/hooks,其討論過程詳見 [RFC] 通用場景的 Hooks 方案,這便也是 ahooks 的由來。

ice/hooks:面向中后臺業(yè)務(wù)場景的 Hooks 方案。

那么好奇的你肯定會問, ice/hooks 與標(biāo)題的 ahooks 的關(guān)系是什么? 待我細(xì)細(xì)道來 ??

在 ice/hooks RFC 期間,我們也對比參考了社區(qū)的同類方案諸如 react-use 等,但最終因為 react-use 提供的 Hooks 過于冗余(已經(jīng)超過 100+),大部分在實際業(yè)務(wù)中可能使用不到,以及它在一年時間內(nèi)大版本已經(jīng)變更到 v15 的原因等最終放棄選,最終確定 ice/hooks 中提供的 Hooks 一方面是基于 react-use 的基礎(chǔ)部分,另一方面更多的是貼合業(yè)務(wù)的,由業(yè)務(wù)中進(jìn)行提煉出來的 Hooks 進(jìn)行組合的方案。

正當(dāng)方案確定準(zhǔn)備開發(fā)時,在 ice/hooks RFC 評論區(qū)收到來自螞蟻 umi 團(tuán)隊 #盡龍 的回復(fù),希望可以共建維護(hù)一套阿里集團(tuán)通用的 Hooks 方案,經(jīng)過幾輪討論下來為避免重復(fù)建設(shè),以及共同訴求的前提下,與螞蟻 umi 團(tuán)隊,阿里體育團(tuán)隊達(dá)成共建 React Hooks 工具庫的目標(biāo),這便是 ahooks 工具庫品牌的由來。

ahooks:基于 React Hooks 的工具庫,致力提供常用且高質(zhì)量的 Hooks。

共建

通過近 2 個月的共建,ahooks 已正式發(fā)布 v1.0 版本 ??? ??? ???。

項目目標(biāo)

ahooks 定位于一套基于 React Hooks 的工具庫,核心圍繞 React Hooks 的邏輯封裝能力,降低代碼復(fù)雜度和避免團(tuán)隊的重復(fù)建設(shè)為背景,共同建設(shè)和維護(hù)阿里經(jīng)濟(jì)體層面的 React Hooks 庫,使之成為和 antd/fusion 組件庫一樣的基礎(chǔ)設(shè)施能力,幫助開發(fā)者在邏輯層面省去大量的重復(fù)工作。

品牌升級

在共建之前由于 umi 團(tuán)隊已經(jīng)有了一定的 Hooks 沉淀,因此主要基于已有的能力進(jìn)行整合和迭代,對特殊依賴的 Hooks 進(jìn)行規(guī)范化,并將品牌升級為 ahooks。

社區(qū)開源

由于品牌升級和出于共建的考慮,ahooks 代碼也已提交了開源流程申請并已經(jīng)通過審批,源代碼維護(hù)在 Alibaba Group 下。詳見 alibaba/hooks

API 規(guī)范

ahooks 基于 UI、SideEffect、LifeCycle、State、DOM 等分類提供了常用的 Hooks,如下圖所示。并對每一類接口的 API 進(jìn)行了規(guī)范化,如規(guī)范入?yún)⒔Y(jié)構(gòu)、返回值結(jié)構(gòu)等,保證 API 層面的簡潔和一致性。

示例演示

  • 用于管理異步數(shù)據(jù)請求的 Hook。
import { useRequest } from 'ahooks';
// 輸出值為多 value 類型的,結(jié)構(gòu)為 {...values} 
const { data, error, loading, ...rest } = useRequest<R>(
  service: string | object | ((...args:any) => string | object),
  {
    ...,
    requestMethod?: (service) => Promise
  })
  • 用于管理 boolean 值的 Hook。
import { useBoolean } from 'ahooks';
// 輸出值為單 value 與多 actions 類型的,結(jié)構(gòu)為 [value, actions]
const [ state, { toggle, setTrue, setFalse }] = useBoolean(
  defaultValue?: boolean,
);
  • 用于將狀態(tài)持久化存儲在 localStorage 中的 Hook。
import { useLocalStorageState } from 'ahooks';
// 輸出值為 value 和 setValue 類型的,結(jié)構(gòu)為 [value, setValue] 
const [state, setState] = useLocalStorageState<T>(
  key: string,
  defaultValue?: T | (() => T),
): [T?, (value?: T | ((previousState: T) => T)) => void]

更多示例詳見 ahooks 官網(wǎng):

https://ahooks.js.org/zh-CN/hooks/async

開發(fā)迭代

在開源項目中如何保障 ahooks 的正常開發(fā)迭代是首先需要達(dá)成一致共識的,因此我們也制定了相應(yīng)的維護(hù)機(jī)制,即將現(xiàn)有的 Hooks 按照分類指派到每個人,被指派的人需要負(fù)責(zé)該分類下的新增、 日常維護(hù)、 Review 和疑難問題的解決。以及建立周報和周會機(jī)制,每兩周聚焦一次當(dāng)下的進(jìn)度和問題,以此確保開源項目正常的開發(fā)迭代。

  • 如果你對 ahooks 感興趣
  • 如果你需要的 Hooks 我們還沒有提供
  • 如果你的業(yè)務(wù)場景里有自定義的 Hooks 可沉淀到 ahooks

下一步

隨著 ahooks 正式版本的發(fā)布,開源的主體工作基本已完成,但目前更多追求的是功能的完成,接下來一方面我們會基于各自的業(yè)務(wù)場景繼續(xù)不斷的完善和沉淀更多通用的 Hooks,簡化邏輯層面大量的重復(fù)工作,以此降低代碼復(fù)雜度和提升開發(fā)效率;另外一方面也在計劃編寫基于 React Hooks 的系列教程,幫助 Hooks 新手更好的理解和使用 React Hooks。

相關(guān)鏈接

以上就是ahooks正式發(fā)布React Hooks工具庫的詳細(xì)內(nèi)容,更多關(guān)于React Hooks工具庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React父子組件間的傳值的方法

    React父子組件間的傳值的方法

    在單頁面里面,父子組件傳值是比較常見的,這篇文章主要介紹了React父子組件間的傳值的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • React Native自定義Android的SSL證書鏈校驗

    React Native自定義Android的SSL證書鏈校驗

    這篇文章主要為大家介紹了React Native自定義Android的SSL證書鏈校驗示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React Redux使用配置詳解

    React Redux使用配置詳解

    react-redux是redux官方react綁定庫,能夠使react組件從redux store中讀取數(shù)據(jù),并且向store分發(fā)actions以此來更新數(shù)據(jù),這篇文章主要介紹了react-redux的設(shè)置,需要的朋友可以參考下
    2022-08-08
  • React如何實現(xiàn)全屏監(jiān)聽Esc鍵

    React如何實現(xiàn)全屏監(jiān)聽Esc鍵

    這篇文章主要介紹了React如何實現(xiàn)全屏監(jiān)聽Esc鍵,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • react 生命周期實例分析

    react 生命周期實例分析

    這篇文章主要介紹了react 生命周期,結(jié)合實例形式分析了react 生命周期基本原理、操作步驟與注意事項,需要的朋友可以參考下
    2020-05-05
  • Header組件熱門搜索欄的實現(xiàn)示例

    Header組件熱門搜索欄的實現(xiàn)示例

    這篇文章主要為大家介紹了Header組件熱門搜索欄的實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 一文帶你搞懂React的函數(shù)組件

    一文帶你搞懂React的函數(shù)組件

    React中函數(shù)式組件的基本意義是,組件實際上是一個函數(shù),不是類,下面就來給大家介紹一下關(guān)于React中函數(shù)組件的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • React+Ts實現(xiàn)二次封裝組件

    React+Ts實現(xiàn)二次封裝組件

    本文主要介紹了React+Ts實現(xiàn)二次封裝組件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • React hook 'useState' is called conditionally報錯解決

    React hook 'useState' is calle

    這篇文章主要為大家介紹了React hook 'useState' is called conditionally報錯解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • antd?table動態(tài)修改表格高度的實現(xiàn)

    antd?table動態(tài)修改表格高度的實現(xiàn)

    本文主要介紹了antd?table動態(tài)修改表格高度的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評論