返回顶部
首页 > 资讯 > 精选 >ahooks正式发布React Hooks工具库怎么使用
  • 850
分享到

ahooks正式发布React Hooks工具库怎么使用

2023-07-02 17:07:15 850人浏览 独家记忆
摘要

今天小编给大家分享一下ahooks正式发布React Hooks工具库怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了

今天小编给大家分享一下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工具库怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

    --结束END--

    本文标题: ahooks正式发布React Hooks工具库怎么使用

    本文链接: https://lsjlt.com/news/343177.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • ahooks正式发布React Hooks工具库
      目录起因解法共建项目目标品牌升级社区开源API 规范示例演示开发迭代下一步起因 从 React Hooks 正式发布到现在,越来越多的项目正在使用 Function Componen...
      99+
      2024-04-02
    • ahooks正式发布React Hooks工具库怎么使用
      今天小编给大家分享一下ahooks正式发布React Hooks工具库怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
      99+
      2023-07-02
    • 正则表达式工具怎么使用
      使用正则表达式工具可以按照以下步骤进行:选择一个正则表达式工具:首先,你需要选择一个适合你需求的正则表达式工具。你可以选择在线工具,如Regex101、RegExr,或者使用文本编辑器插件,如Sublime Text、Visual Stud...
      99+
      2023-07-10
    • 怎么正确使用dotnet-*工具
      本篇内容主要讲解“怎么正确使用dotnet-*工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么正确使用dotnet-*工具”吧!安装因为我们现在都是容器化时代了,所以我们可以把这类工具全部...
      99+
      2023-06-22
    • Git工具怎么正确使用
      这篇文章主要介绍“Git工具怎么正确使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Git工具怎么正确使用”文章能帮助大家解决问题。一、安装Git二、Git简介Git是一种多人协作的版本管理系统。...
      99+
      2023-06-29
    • 怎么正确使用dotnet工具
      要正确使用dotnet工具,首先需要安装dotnet SDK。然后,可以使用以下步骤进行操作:1. 打开命令提示符或终端窗口。2. ...
      99+
      2023-08-18
      dotnet
    • phpMyAdmin 4.1.12发布MySQL管理工具怎么用
      这期内容当中小编将会给大家带来有关phpMyAdmin 4.1.12发布MySQL管理工具怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。phpMyAdmin 4.1...
      99+
      2024-04-02
    • 嵌入式linux开发工具怎么用
      今天小编给大家分享一下嵌入式linux开发工具怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
      99+
      2023-03-19
      linux
    • C#开发工具SharpDevelop怎么使用
      使用SharpDevelop进行C#开发的步骤如下:1. 安装SharpDevelop:从官方网站(https://www.icsh...
      99+
      2023-09-29
      C# SharpDevelop
    • 怎么使用Java工具类库hutool
      本篇内容介绍了“怎么使用Java工具类库hutool”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介Hutool是Hu + tool的自造...
      99+
      2023-06-16
    • 开源工具库xijs怎么使用
      本篇内容主要讲解“开源工具库xijs怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“开源工具库xijs怎么使用”吧!xijs 是我2年前开源的一款面向复杂业务场景的 j...
      99+
      2023-07-05
    • 如何使用CI/CD工具Github Action发布jar到Maven中央仓库
      这篇文章主要讲解了“如何使用CI/CD工具Github Action发布jar到Maven中央仓库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用CI/CD工具Github Actio...
      99+
      2023-06-20
    • Hutool Java工具类库_ExcelUtil怎么使用
      这篇文章主要介绍“Hutool Java工具类库_ExcelUtil怎么使用”,在日常操作中,相信很多人在Hutool Java工具类库_ExcelUtil怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
      99+
      2023-06-21
    • 针对Windows Azure发布新PHP开发工具windows azure companion怎么用
      本篇文章为大家展示了针对Windows Azure发布新PHP开发工具windows azure companion怎么用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收...
      99+
      2024-04-02
    • 怎么使用Black代码格式化工具
      小编给大家分享一下怎么使用Black代码格式化工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Black有时创意可能是一件美妙的事情。有时它只是一种痛苦。我喜欢...
      99+
      2023-06-02
    • C++11正则表达式库怎么使用
      本篇内容介绍了“C++11正则表达式库怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本用法代码说明最基本的用法当然就是定义正则表达...
      99+
      2023-06-19
    • 移动测试开发Mitmproxy工具怎么使用
      本文小编为大家详细介绍“移动测试开发Mitmproxy工具怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“移动测试开发Mitmproxy工具怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.前言在...
      99+
      2023-07-02
    • 基于node的cli工具怎么开发使用
      本篇内容介绍了“基于node的cli工具怎么开发使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景公司内部有维护admin和h6两套基础...
      99+
      2023-07-05
    • 数据库管理开发工具Navicat Premium Mac怎么用
      数据库管理开发工具Navicat Premium Mac怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Navicat Premium Mac特别版是您早Mac平台上最好用...
      99+
      2023-06-05
    • 使用CI/CD工具Github Action发布jar到Maven中央仓库的详细介绍
      之前发布开源项目Payment Spring Boot到Maven中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点“原始”。于是我一直在寻求一种...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作