【发布时间】:2019-04-03 09:39:01
【问题描述】:
随着在 React 中引入hooks,现在主要的困惑是何时使用带有钩子和类组件的函数组件,因为借助钩子,即使在函数组件中也可以得到state 和部分lifecycle hooks。所以,我有以下问题
- 钩子的真正优势是什么?
- 何时使用带有钩子的函数组件与类组件?
例如,带有钩子的函数组件无法像类组件那样帮助提高性能。他们不能跳过重新渲染,因为他们没有实现shouldComponentUpdate。还有什么原因吗?
提前致谢。
【问题讨论】:
-
部分生命周期挂钩你从哪里得到的?我只是快速浏览了参考链接,它没有说明生命周期方法。据我所知,大多数人选择使用类组件是因为他们需要访问状态,而不知道它会为生命周期方法添加元。使用钩子,您应该有一个功能组件,其状态减去生命周期方法的开销。
-
你应该检查Effect Hook。这更像是 componentDidMount 和 componentWillUnmount。
-
useEffect,增加了从函数组件执行副作用的能力。它的用途与 React 类中的 componentDidMount、componentDidUpdate 和 componentWillUnmount 相同,但统一为一个 API,因此您无法访问任何生命周期方法。它是一个包装器,就像一个包装器,但你不能单独访问它们。
-
关于类组件限制的总结:basefactor.com/react-class-components-pitfalls(这种管理,难以提取功能,在分离的处理程序中管理相关关注点,高阶组件使用噪音,从类组件切换到功能和反过来,学习接近的、基于类和函数的组件)。
标签: javascript reactjs react-hooks