React 生命周期
生命周期方法在class组件中存在
为什么函数组件不能用生命周期函数:是因为没有继承React.Component,而生命周期的方法是由这个类实现的
把函数组件转化为class组件的步骤:
-
创建同名的ES6 class,继承于React.Component
-
添加空的render()方法
-
将函数移动到render方法中
-
在render中使用this.props代替props
-
删除剩余的空函数声明
class组件始终用props参数来调用父类的构造函数
挂载:组件第一次渲染到dom中
卸载:清除dom中的组件
生命周期方法:当组件挂载与卸载时去执行的这些方法
执行流程:
-
当组件传到Render函数时,React会调用组件里的构造函数。
-
React会接着调用组件里的Render方法,展示出组件里的内容,React更新dom匹配组件的输出
-
当组件的输出插入到dom中后,即组件挂载后,React会调用ComponentDidMount生命周期方法
-
如果生命周期方法里有setState,state更新后会重新调用render进行渲染页面
-
当组价被移除时,会调用componentWillUnmount生命周期的方法
以上即为官方文档上介绍的由来和使用
下面具体的介绍一下React都要哪些生命周期函数:
-
挂载前:组件的渲染会先执行defaultProps和propsTypes,然后是constructor和this.state
-
挂载时触发的函数: componentWillMount,然后进入Render渲染,
-
挂载完成时触发的函数:componentDidMount,Render渲染后挂载完成,触发此函数
前三步为挂载部分,下面介绍数据更新部分
-
-
更新时触发的函数:componentWillUpdate ,这之后的过程类似于之前的挂载,执行后会进行render进行渲染
-
更新结束后调用的函数:componentDidUpdate,render渲染后会调用此函数
-
组件销毁时触发的函数: componentWillUnmount
-
组件中改变props传值时触发的函数: componentWillReceiveProps, 当在子组件中改变props的值时触发此函数

浙公网安备 33010602011771号