react高级篇之函数组件和类组件的区别

1,088 阅读2分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

在react中,组件分为两种,一种是类组件(class组件),另一种是函数组件。

在react的16.8版本之前,我们常规的react项目均使用类组件构建,

react中的函数组件在16.8版本之前也被称为无状态组件,因为没有自己state和生命周期,根本无法满足基本的项目需求,只能用作UI渲染。

但是自从react的16.8版本推出hooks之后,函数组件凭借着绝对的可读性和高复用性迅速替代了臃肿的类组件。类组件慢慢退出了大众的视野。函数组件逐渐称为大众的最优选。

现在,我们来看看类组件和函数组件都有什么不同的地方。

类组件和函数组件的区别

  • 类组件有生命周期 / 函数组件没有生命周期(16.8版本后通过hooks中的useEffect有了生命周期)
  • 类组件需要继承Class / 函数组件不需要继承Class
  • 类组件有自己的状态 / 函数组件没有自己的状态(16.8版本之后通过hooks中的useState()有了状态)
  • 类组件可以获取实例化之后的this / 函数组件没有实例

类组件和函数组件的优缺点比较

  • 从生命周期的角度来说,类组件的生命周期比函数组件的生命周期更多。 --类组件优
  • 从功能上来说,类组件拥有错误边界,但是函数组件没有 --类组件优
  • 从代码上来说,函数组件比类组件更简洁易读,更干净清爽 --函数组件优
  • 从组件化的角度来说,函数组件也比类组件更好拆分和复用 --函数组件优

总结

类组件和函数组件都有各自的优缺点。而在我们日常的开发中,代码的可读性和复用性一定是重中之重。所以在react的项目中,函数组件一定是首选,一般情况下使用函数组件也都可以满足项目需求,当某一个组件需要有特殊通途的时候(比如错误边界或者需要使用到class中的某一个生命周期)才会选择类组件。

欢迎技术沟通,摸鱼聊天~

备注来自掘金~

wx:XXF1096032096