1. React函数式组件和类组件的区别
React 中有两种主要的组件类型:函数式组件和类组件。它们之间的区别主要体现在以下几个方面:
语法:
函数式组件:函数式组件是一个简单的 JavaScript 函数,接收 props 作为参数并返回 React 元素。
类组件:类组件是一个 ES6 类,继承自 React.Component,包含 render 方法并返回 React 元素。
状态管理:
函数式组件:以前,函数式组件是无状态的,无法使用状态(state)或生命周期方法。但是自 React 16.8 版本引入了 Hooks,函数式组件可以使用 useState 等 Hook 来管理状态。
类组件:类组件可以使用 this.state 和 this.setState() 来管理组件的状态,并且可以使用生命周期方法来处理组件的生命周期事件。
性能:
函数式组件:由于函数式组件本质上就是一个函数,渲染开销较小,性能相对较好。
类组件:类组件在实例化和渲染过程中会涉及更多的操作(执行各种生命周期函数),性能相对较低。
代码复用:
函数式组件:函数式组件更容易实现逻辑的复用,可以使用自定义 Hook 来提取和重用组件逻辑。
类组件:类组件可以使用继承和组合来实现代码复用,但相对来说比较繁琐。
总的来说,随着 React Hooks 的引入,函数式组件在很多方面已经可以替代类组件,并且具有更好的性能和代码复用性。但在一些特定场景下,仍然会选择使用类组件,比如需要使用生命周期方法或者已有的类组件代码库。