跟Vue一样,React整个组件生命周期包括从创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程
流程:
这里主要讲述react16.4之后的生命周期,可以分成三个阶段:
-
创建阶段
-
更新阶段
-
卸载阶段
1) constructor() :完成了react数据的初始化,接收两个参数:props和context,只要使用了constructor(),就必须写super(),否则this指向会报错
2) component will Mount()渲染前使用
3)render() 渲染时生成一个新的虚拟dom树,通过diff算法,比较新树和旧树的差异,进行局部刷新
4) componentDidMount() 渲染后,返回数据setState后组件会重新渲染,一般用于初始请求数据
5)componentWillUnmount() 组件的卸载和数据的销毁
6) componentwillReceireProps() 用来监听props的变化,接受一个参数:nextProxys,也就是最新的props,再此生命周期中打印this.props是旧值
7)shouldComponentUpdate(nextProps,nextState) 监听props以及state的变化,接收两个参数:nextProps,nextState,生命周期返回一个boolean值,返回ture,继续触发生命周期,返回false,停止触发生命周期,一般用于性能优化
8) componentWillUpdate(nextProps,nextState)
dom更新前,接收两个参数nextProps,nextState
9)componentDidUpdate(prveProps,prevState)
dom更新后,接收两个参数,旧的prveprops和旧的prevState,再此生命周期中打印this.props以及this.state是新值