代码之家  ›  专栏  ›  技术社区  ›  Praveen Rao Chavan.G

为什么我更喜欢使用钩子而不是使用基于类的组件?

  •  0
  • Praveen Rao Chavan.G  · 技术社区  · 5 年前

    钩子 ,我真的很喜欢钩子给我们的能力 状态 在功能组件中使用 useState()、useEffects()、useReducer()等 功能部件 尽可能限制 基于类的组件 在容器级别保持 或者 分支

    我的问题是: 为什么我更喜欢使用钩子而不是使用基于类的组件,这样做的好处是什么?

    我计划通过转换我的许多代码库来重构我的现有代码库。 进入之内 功能部件 使用 但我想知道这样做是否值得?我得到的答案会帮助我做出决定。

    基于类的组件 相反呢?

    0 回复  |  直到 5 年前
        1
  •  3
  •   NoriSte    5 年前

    我的问题是:为什么我更喜欢使用钩子而不是使用基于类的组件,这样做的好处是什么?

    主要用于:

    • / 简洁 :大多数情况下,您选择使用基于类的组件来做简单的事情(控制输入组件、简单的UI选项/选项),并且通常是这样做的

      • 添加一些交互( onCLick公司 一旦改变 )处理程序
      • 添加构造函数将它们绑定到当前组件 组件 , 等。
        你的组件变得越来越冗长,只是为了做一些简单的事情。

    • 简单 :Hooks允许您编写超级简单的原子副作用/状态逻辑,您可以在一段时间内将其插入到组件中。 要将行为/特性添加到超级简单的组件中,您不需要将它们转换为类,“强制”您自己使用其中一种反应模式(高阶组件、渲染道具等),特别是在开始时,这种模式使React很难上船

    • 有状态逻辑重用 :钩子是如此简单和可连接,以至于您可以混合它们并添加丰富/复杂的功能而不必担心它们(实际上钩子只能在功能组件和。。。其他钩子本身)

    • :这是一个高级问题,但也可能很重要。尽管Hooks将表示逻辑与有状态逻辑混合在一起(UI和状态/副作用不再分离),Hooks可以被开发为超级容易测试的函数(独立于您考虑单元测试的好坏)。

    医生自己说,在做这件事之前要三思

    阅读“使用效果” 组件didmount+componentDidUpdate+componentWillUnmount Kent post . 在做这件事之前,你必须注意一些禁忌症。
    相反:考虑对未来的每个组件使用钩子,而不是重构旧组件。

    因此,在执行此操作之前进行一些检查和测试,并且只有在掌握钩子时才重构组件

    p、 我引用了HOC等反应模式:它们仍然有效和有用,并且有很多房间供它们使用,只是你不会发现自己将它们用于不需要它们的简单的东西

    my memorandum 有用的是,我为所有已经阅读过文档的人编写了它,并总结了最重要的Hooks内容(链接到文档等)