为什么会有 React-Hooks

React-Hooks 是什么?它是因为什么原因出现的?
  • React-Hooks 是一系列能够使函数式组件更强大、更灵活的“勾子”,(至于说这个“勾子”,我的理解是这样的:用户编写好相关的逻辑代码传入框架,之后由框架在适当的时机调用);

  • React-Hooks 出现的原因自然是为了丰富函数式组件的功能,使函数式组件在一定程度上具有替换类组件的能力。

那 React 为什么那么推崇函数式组件呢?相对于类组件,函数式组件有以下几个特点。
  1. 函数式组件更符合函数式编程的理念;
  2. 函数式组件更轻量,一般情况下,实现同样功能的组件,用函数式比用类组件在代码量要少一半;
  3. 函数式组件更容易实现状态逻辑的拆分与复用(比如自定义 Hooks)
如此看来,函数式组件加上 React-Hooks 就万能了,可以完全替代类组件了呗?目前暂时还不能!
  • 类组件具有的功能毕竟大而全,函数式组件还不能完全覆盖,例如 getSnapshotBeforeUpdate 和 componentDidCatch 这两个功能。
  • 如果用函数组件解决比较复杂的问题,业务逻辑的拆分和组合是个“技术活儿”,对开发者水平有要求。
  • Hooks 在使用要严格的遵守特定规则,上手前有学习成本。
React-Hooks 的使用规则
  • 只在 React 函数组件中使用

  • 不要在循环、条件或者嵌套函数中使用,其实就是在初始渲染和更新渲染过程中要保证各 Hooks 的顺序一致性。

    如果一个组件中有多个 hook 那么在组件初始化后它们会以链表的形式被组织起来,后续组件更新的时候也会依次遍历这个链表,而一旦组件更新时的 hooks 顺序与链表中顺序不一致,则会出现“驴唇不对马嘴”的现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值