跳到主要内容

componentWillMount

2024年03月06日
柏拉文
越努力,越幸运

一、认识


componentWillMount

版本: 在 React V16.3 componentWillMountcomponentWillReceivePropscomponentWillUpdate 三个生命周期加上了不安全的标识符 UNSAFE,变成了如下形式:

  • UNSAFE_componentWillMount

  • UNSAFE_componentWillReceiveProps

  • UNSAFE_componentWillUpdate

在目前最新的版本 React V17.0.2 也没有废弃这三个生命周期。可能不久之后更高级的版本会被废除吧。**那么为什么要加UNSAFE呢?**首先根据源码,大家有没有发现一个问题,就是这三个生命周期,都是在 render 之前执行的,React 对于执行 render 函数有着像 shouldUpdate 等条件制约,但是对于执行在 render 之前生命周期没有限制,存在一定隐匿风险,如果 updateClassInstance 执行多次,React 开发者滥用这几个生命周期,可能导致生命周期内的上下文多次被执行。