useState 小结
useState
是React Hooks中的一个核心函数,它允许在函数组件中添加状态。useState
接受一个参数,这个参数是状态的初始值。调用useState
会返回一个数组,这个数组包含两个元素:
- 当前状态的值:这是通过
useState
定义的状态的当前值,可以在组件内部被读取和显示。 - 更新状态的函数:这是一个允许你更新状态的函数。当你调用这个函数并传入新的状态时,React会重新渲染组件,以反映状态的变化。
useEffect 小结
useEffect
是另一个重要的React Hook,用于在函数组件中执行副作用操作(如数据获取、订阅或手动更改React组件中的DOM)。useEffect
可以模拟类组件中的几种生命周期*,具体取决于其第二个参数(依赖项数组)的内容。
模拟
componentDidMount
:当useEffect
的第二个参数为空数组[]
时,该回调函数仅在组件挂载后执行一次,这类似于类组件中的componentDidMount
生命周期*。模拟
componentDidUpdate
:如果useEffect
的第二个参数包含了一个或多个值,那么当这些值中的任何一个发生变化时,回调函数就会执行。这可以用来在特定状态或属性更新后执行操作,类似于类组件中的componentDidUpdate
。模拟
componentWillUnmount
:如果useEffect
的回调函数返回了一个函数,那么这个返回的函数会在组件卸载前执行,类似于类组件中的componentWillUnmount
。这通常用于执行清理操作,如取消订阅、移除事件*等。
函数式组件的渲染
函数式组件通过直接返回*X或组件树来模拟render
*。与类组件不同,函数式组件没有显式的render
*;相反,组件的返回值直接对应于渲染结果。
模拟shouldComponentUpdate
在函数式组件中,没有直接对应shouldComponentUpdate
的*,但你可以使用React.memo
和useMemo
来优化组件的渲染性能。
React.memo
:这是一个高阶组件,用于对组件的props进行浅比较。只有当props发生变化时,才会重新渲染组件,这有助于避免不必要的渲染。useMemo
:这个Hook返回一个记忆化的值。它仅会在其依赖项数组中的值发生变化时重新计算。这可以用于优化昂贵的计算,避免在每次渲染时都重新执行这些计算。