react生命周期(旧)

1. 初始化阶段: 由ReactDOM.render()触发---初次渲染

                  1.  constructor()

                  2.  componentWillMount()

                  3.  render()

                  4.  componentDidMount() =====> 常用一般在这个钩子中做一些初始化的事,例如:开启定时器、发送网络请求、订阅消息

react生命周期(旧)

对应于下面红色框的路线

react生命周期(旧)
 

 2. 更新阶段: 由组件内部this.setSate()或父组件render触发

                  1.  shouldComponentUpdate()----这个函数会返回true或者false代表能不能更新

                  2.  componentWillUpdate()

                  3.  render() =====> 必须使用的一个

                  4.  componentDidUpdate()

react生命周期(旧)

 相当于走的下面红色箭头的这条线

react生命周期(旧)

 3.更新阶段:由强制更新触发

有时候没有改变状态,需要强制让组件更新

                  1.  componentWillUpdate()

                  2.  render() =====> 必须使用的一个

                  3.  componentDidUpdate()

react生命周期(旧)

 走的是下面红色箭头的路

如果把shouldComponentUpdate()返回false会阻止setState更新但是不能阻止强制更新

react生命周期(旧)

4.卸载组件: 由ReactDOM.unmountComponentAtNode()触发

                1.  componentWillUnmount()  =====> 常用在这个钩子中做一些收尾的事,例如:关闭定时器、取消订阅消息

如果想卸载项目,

得调ReactDOM.unmountComponentAtNode(document.getElementById('test'))方法,传入要卸载dom的节点,比如下面的例子卸载的是id为test节点上的dom

react生命周期(旧)

5.父子组件更新:父组件传props给子组件,父组件更新props

                  1.componentWillReceiveProps()------组件将要接收新的props的钩子

                  2.  shouldComponentUpdate()----这个函数会返回true或者false代表能不能更新

                  3.  componentWillUpdate()

                  4.  render() =====> 必须使用的一个

                  5.  componentDidUpdate()

react生命周期(旧)

相当于走的下面红色框的路线

react生命周期(旧)

参考链接: 尚硅谷2021版React技术全家桶全套完整版(零基础入门到精通/男神天禹老师亲授)_哔哩哔哩_bilibili

 

上一篇:vue render里面使用switch case多重判断


下一篇:ZF_react 高阶组件 多个context的实现 render props Purcomponent的实现 React.memo的实现