Ric*_*ard 1 javascript reactjs react-hooks
我一直在阅读关于钩子和它们的一些好处,但似乎苹果和橘子之间有一些比较,在高层次上,钩子组件只是具有依赖注入的人造类。例如,类 setState 与钩子 setState。您无法真正比较两者,因为它们的行为不同。行为上的差异不是因为函数或类,而是因为 react 实现了这两个函数。来自 useState 和其他钩子的值只是由依赖容器解析的人造类属性,并在每次渲染后创建和销毁。似乎 React 是说在类上使用钩子组件,因为类混淆了人和机器,但本质上是使用类概念,但称它们为别的东西。好的和坏的代码独立于类和函数,取决于你将问题分解成小块的程度,因此使用钩子移动到功能组件似乎是横向移动。我真的很喜欢 useEffect 的概念,但是我想知道为什么它的行为不能移植到类中。我没有看到嵌套函数比类函数更干净。
Hooks 是革命性的 imo。我在课堂上工作了很短的时间,很高兴发现了钩子。
以下是一些明显改进的小清单:
Hooks 将为您节省大量样板文件。你没有构造函数super(props)了。你也摆脱了this,尤其是繁琐的.bind(this)电话。
您可以使用多个useState钩子分隔您的状态,而不是拥有一个非常大的状态对象。此外,您还可以使用自己的自定义钩子轻松地重用类似的状态逻辑或一般逻辑。这实际上是因为你摆脱的一个最大的优点renderProps,大多HOC太。您只有一种简单直观的方式来跨组件共享逻辑。
另一件事是您Consumer在使用上下文时去掉了部分,只需使用useContext.
useEffect完全取代了所有生命周期钩子,并消除了ComponentWillReceiveProps与依赖数组一起使用的尴尬。
总的来说,我认为使用函数和钩子而不是类更直观。事实上,您现在只需要函数,而在之前您必须对有状态组件使用类组件,而应该对无状态组件使用函数。仅此一项就表明一直希望在类上使用函数,但在当时是不可能的。
| 归档时间: |
|
| 查看次数: |
2047 次 |
| 最近记录: |