React 中调用 setState 会更新的生命周期有哪几个?
在 React 中,调用 setState 方法会导致组件的重新渲染,进而触发一系列的生命周期方法。以下是调用 setState 后会更新的主要生命周期方法:
-
constructor
在组件初始化时调用,setState不会触发此生命周期方法,但它是组件生命周期的起点。 -
getDerivedStateFromProps
这是一个静态方法,每次调用setState时,都会在渲染前调用。它可以根据父组件的 props 更新组件状态。 -
shouldComponentUpdate
在setState被调用后,React 会检查此方法的返回值以决定是否继续更新组件。返回true会继续更新,返回false则会阻止更新。 -
render
这是核心方法,每次setState被调用后,组件都会重新渲染。render方法会返回要渲染的 React 元素。 -
getSnapshotBeforeUpdate
在render方法之后、DOM 更新之前调用。此方法可以用来捕获一些信息(例如滚动位置),并在componentDidUpdate中使用。 -
componentDidUpdate
当组件更新后调用,setState会触发此方法。在此方法中,您可以执行一些操作,例如发起网络请求或手动操作 DOM。 -
componentWillUnmount
在组件卸载之前调用,虽然setState本身不会直接触发此方法,但如果组件因状态更新而被卸载,该方法将被调用。
总结
在 React 中,调用 setState 会导致组件的生命周期方法依次触发。主要涉及的生命周期包括 getDerivedStateFromProps、shouldComponentUpdate、render、getSnapshotBeforeUpdate、componentDidUpdate 和 componentWillUnmount。理解这些生命周期方法的触发顺序和作用,有助于更好地管理组件的状态和性能优化。