📅  最后修改于: 2023-12-03 14:48:24.174000             🧑  作者: Mango
在 React 中,组件的渲染过程可以分为三个阶段:挂载(Mounting)、更新(Updating)和卸载(Unmounting)。其中,挂载指的是组件初次渲染到 DOM 树上的过程;更新指的是组件在接收到新的属性或者状态后重新渲染到 DOM 树上的过程;卸载指的是组件被销毁时从 DOM 树上卸载的过程。
在 w 组件中,当组件需要更新时,会执行以下流程:
shouldComponentUpdate(nextProps, nextState):该方法会在更新之前被调用,返回 true 表示允许更新,返回 false 则不会更新。
componentWillUpdate(nextProps, nextState):在 shouldComponentUpdate 返回 true 后立即调用。
render():在 componentWillUpdate 之后执行,返回一个 React 元素。
componentDidUpdate(prevProps, prevState):在组件更新完成后立即调用。
相较于更新,挂载的过程会多一些方法:
constructor(props):组件实例化时调用,可用于初始化状态或绑定事件等。
componentWillMount():在组件挂载之前调用,该方法中可以获取到组件的 props 和 state,但不推荐在此方法中更新状态,因为此时状态并未与 DOM 同步。
componentDidMount():在组件挂载后调用,该方法中可以进行一些需要 DOM 的操作,比如获取 DOM 元素的宽高等信息。
总的来说,挂载和更新的过程在 w 组件中都差不多,只是在更新前多了一个 shouldComponentUpdate 方法,该方法允许我们在组件更新前对性能做出优化。
而在 componentWillUnmount 方法中,我们可以进行一些组件销毁前的清理工作,比如解绑定时器、移除事件监听器等。
# w 组件确实更新和挂载之间的区别
在 React 中,组件的渲染过程可以分为三个阶段:挂载(Mounting)、更新(Updating)和卸载(Unmounting)。其中,挂载指的是组件初次渲染到 DOM 树上的过程;更新指的是组件在接收到新的属性或者状态后重新渲染到 DOM 树上的过程;卸载指的是组件被销毁时从 DOM 树上卸载的过程。
在 w 组件中,当组件需要更新时,会执行以下流程:
1. shouldComponentUpdate(nextProps, nextState):该方法会在更新之前被调用,返回 true 表示允许更新,返回 false 则不会更新。
2. componentWillUpdate(nextProps, nextState):在 shouldComponentUpdate 返回 true 后立即调用。
3. render():在 componentWillUpdate 之后执行,返回一个 React 元素。
4. componentDidUpdate(prevProps, prevState):在组件更新完成后立即调用。
相较于更新,挂载的过程会多一些方法:
1. constructor(props):组件实例化时调用,可用于初始化状态或绑定事件等。
2. componentWillMount():在组件挂载之前调用,该方法中可以获取到组件的 props 和 state,但不推荐在此方法中更新状态,因为此时状态并未与 DOM 同步。
3. componentDidMount():在组件挂载后调用,该方法中可以进行一些需要 DOM 的操作,比如获取 DOM 元素的宽高等信息。
总的来说,挂载和更新的过程在 w 组件中都差不多,只是在更新前多了一个 shouldComponentUpdate 方法,该方法允许我们在组件更新前对性能做出优化。
而在 componentWillUnmount 方法中,我们可以进行一些组件销毁前的清理工作,比如解绑定时器、移除事件监听器等。