中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ahooks正式發布React?Hooks工具庫怎么使用

發布時間:2022-09-21 15:41:37 來源:億速云 閱讀:180 作者:iii 欄目:開發技術

今天小編給大家分享一下ahooks正式發布React Hooks工具庫怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    起因

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

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

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

    解法

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

    ice/hooks:面向中后臺業務場景的 Hooks 方案。

    那么好奇的你肯定會問, ice/hooks 與標題的 ahooks 的關系是什么? 待我細細道來 ????

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

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

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

    共建

    通過近 2 個月的共建,ahooks 已正式發布 v1.0 版本 

    項目目標

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

    品牌升級

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

    社區開源

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

    API 規范

    ahooks 基于 UI、SideEffect、LifeCycle、State、DOM 等分類提供了常用的 Hooks,如下圖所示。并對每一類接口的 API 進行了規范化,如規范入參結構、返回值結構等,保證 API 層面的簡潔和一致性。

    ahooks正式發布React?Hooks工具庫怎么使用

    示例演示

    • 用于管理異步數據請求的 Hook。

    import { useRequest } from 'ahooks';
    // 輸出值為多 value 類型的,結構為 {...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 類型的,結構為 [value, actions]
    const [ state, { toggle, setTrue, setFalse }] = useBoolean(
      defaultValue?: boolean,
    );
    • 用于將狀態持久化存儲在 localStorage 中的 Hook。

    import { useLocalStorageState } from 'ahooks';
    // 輸出值為 value 和 setValue 類型的,結構為 [value, setValue] 
    const [state, setState] = useLocalStorageState<T>(
      key: string,
      defaultValue?: T | (() => T),
    ): [T?, (value?: T | ((previousState: T) => T)) => void]

    開發迭代

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

    • 如果你對 ahooks 感興趣

    • 如果你需要的 Hooks 我們還沒有提供

    • 如果你的業務場景里有自定義的 Hooks 可沉淀到 ahooks

    以上就是“ahooks正式發布React Hooks工具庫怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    都兰县| 天镇县| 集贤县| 澄江县| 高碑店市| 花莲县| 中卫市| 温宿县| 赫章县| 枝江市| 公主岭市| 谢通门县| 普宁市| 苏尼特左旗| 龙陵县| 吉水县| 秀山| 临泉县| 剑川县| 资讯| 交城县| 东山县| 南溪县| 古浪县| 金塔县| 会泽县| 石泉县| 梁河县| 赤水市| 驻马店市| 井冈山市| 罗源县| 哈尔滨市| 商都县| 河西区| 崇州市| 仙游县| 克东县| 洪雅县| 普兰店市| 大邑县|