在React函数组件中,生命周期函数的使用与类组件有所不同。函数组件通过钩子(Hooks)来实现生命周期函数的功能。以下是一些常用的生命周期钩子及其在函数组件中的使用方法:
1. useState
和 useEffect
基础
useState
:用于在函数组件中创建状态。useEffect
:用于处理副作用,可以替代类组件中的componentDidMount
、componentDidUpdate
和componentWillUnmount
。
import React, { useState, useEffect } from 'react';function MyComponent() {const [count, setCount] = useState(0);useEffect(() => {// 相当于 componentDidMount 和 componentDidUpdateconsole.log('组件渲染或更新');// 可以返回一个清理函数,相当于 componentWillUnmountreturn () => {console.log('组件卸载');};}, [count]); // 仅在 count 变化时执行return <div>{count}</div>;
}
2. useEffect
的使用场景
- 替代
componentDidMount
:在依赖数组为空时,useEffect
中的代码会在组件首次渲染后执行。 - 替代
componentDidUpdate
:在依赖数组非空时,useEffect
中的代码会在依赖变化后执行。 - 替代
componentWillUnmount
:通过返回一个函数,可以在组件卸载前进行清理。
3. 其他常用钩子
useContext
:用于访问React上下文(Context)。useReducer
:用于状态管理,替代复杂的useState
。useRef
:用于获取DOM元素或存储变量,且不会引起组件重新渲染。