类组件
状态和生命周期:
- 类组件可以拥有自己的状态(state)和生命周期方法(如
componentDidMount
)。 - 使用
this.setState
更新状态,会触发组件的重新渲染。
- 类组件可以拥有自己的状态(state)和生命周期方法(如
方法和事件处理:
- 可以定义自己的方法,并在组件内部使用。
- 事件处理函数通常需要绑定
this
来访问组件实例。
语法:
- 类组件通过扩展
React.Component
类来创建。 - 必须包含
render
方法,该方法返回JSX。
- 类组件通过扩展
使用场景:
- 当组件需要内部状态或需要使用生命周期方法时,类组件是一个好选择。
函数组件
简洁性:
- 函数组件是使用普通JavaScript函数创建的,可以是一个简单的函数或箭头函数。
- 通常比类组件更简洁、更易于理解和测试。
Hooks:
- 在React 16.8之后,通过引入Hooks,函数组件也可以有状态和其他React特性(如
useState
,useEffect
)。 - Hooks使得在不编写类的情况下使用状态和其他React功能成为可能。
- 在React 16.8之后,通过引入Hooks,函数组件也可以有状态和其他React特性(如
性能:
- 函数组件可能会比类组件略微有更好的性能,因为它们没有类的额外开销。
使用场景:
- 当组件不需要状态管理或生命周期方法,或者可以利用Hooks时,函数组件是一个更好的选择。