React 类组件 vs 函数组件,区别及选型建议

0 阅读1分钟

类组件和函数组件是 React 的两种组件形式,面试常问两者区别、优缺点及选型,核心是“现在主流用函数组件 + Hooks”,回答时要突出时代趋势。

一、核心区别

1. 语法形式:

类组件:通过 class 定义,继承 React.Component,有 this 指向,需要实现 render 方法返回 JSX。

函数组件:通过普通函数定义,无需继承,直接返回 JSX,无 this 指向。

2. 状态管理:

类组件:通过 state 定义状态,用 this.setState() 修改状态,触发重新渲染。

函数组件:最初是无状态组件,React 16.8 引入 Hooks 后,可通过 useState、useReducer 管理状态。

3. 生命周期:

类组件:有完整的生命周期方法(如 componentDidMount、componentDidUpdate、componentWillUnmount)。

函数组件:无生命周期方法,通过 useEffect Hook 模拟生命周期。

4. 代码复杂度:

类组件:语法繁琐,易出现 this 指向问题,代码复用麻烦(需用 HOC、Render Props)。

函数组件:语法简洁,无 this 问题,代码复用更灵活(用自定义 Hooks)。

二、选型建议

现在 React 主流推荐使用「函数组件 + Hooks」,原因:语法简洁、易维护、代码复用性强、更适合 TypeScript 结合;类组件仅在维护旧项目时使用,新项目不推荐。


——个人观点 · 仅供参考——