React-首选项:函数类与组件类

时间:2020-05-17 22:50:15

标签: reactjs react-native react-navigation

是否放弃了类组件?

我看到在几个库示例中,功能组件是优先考虑的。

特别是React Navigation。

同样,React本身与Hooks仅使它们可用于功能组件。

主要问题是:为什么要如此优先考虑功能组件?

3 个答案:

答案 0 :(得分:6)

不,我认为今天不会放弃类组件。也许将来。

它们不像功能组件那样轻巧,但是我在社区中看到很多使用类组件的项目。

但是,在这里,我们有一些理由说明社区支持Functional Components方法的原因:

  • 类组件需要更多代码,但也会为您带来一些好处,您稍后将看到(Babel所转译的代码也将更大)
  • 功能组件只是一个普通的JavaScript函数,它接受props作为参数并返回React元素。
  • 功能组件很容易阅读和测试,因为它们是普通的JavaScript函数(较少的代码)。
  • React团队mentioned认为,未来的React版本中功能组件的性能可能会提高

查看此答案:https://stackoverflow.com/a/49613435/4119452

更多:https://medium.com/@Zwenza/functional-vs-class-components-in-react-231e3fbd7108

答案 1 :(得分:1)

如今,类组件和功能组件几乎相同。在功能组件中,钩子是之前未引入的,并且与类组件等效,因此,功能组件会获得新的钩子,如useState,useRef,useMemo,它们等效于this.state,React.createRef和PureComponent。

此外,类组件上的componentDidUpdate可以在功能组件上使用useEffect。

更多详细信息,请检查 Functional Components vs Class Components in ReactReact JS — Understanding Functional & Class Components

答案 2 :(得分:1)

基于钩子的方法[2020年更新]

React团队目前正在使用Hooks-first方法重建文档,应该优先使用所有新功能和应用程序

将来,类组件有可能被弃用吗?

类组件将在未来几年出现-例如, Facebook已经有成千上万的作品。 但是,我们建议您构建具有功能的新应用 组件和挂钩,这就是为什么我们要这些文档放在前面并 中心。

https://github.com/reactjs/reactjs.org/issues/3308