React组件生命周期
2018-01-12 16:39
591 查看
React组件生命周期
组件的生命周期可分成三个状态:Mounted->Update ->Unmounted
Mounted:React Components被render解析生成对应的DOM节点,并被插入浏览器的DOM结构的一个过程
Update:一个mounted的React Components被重新render的过程(这个重新渲染的过程并不是说相应的DOM结构就一定会发生改变,react会把这个Components的当前status和最近一次的state进行比较,只有当state确实发生改变并且影响到DOM结构的时候,react才会去改变对应的DOM结构)
Unmounted:一个mounted的React Components对应的DOM节点被从DOM结构中移除的这样一个过程
每一个状态React都封装了对应的hook函数
mounting阶段有两个hook函数:
componentWillMount Mounting前被调用,在客户端也在服务端
componentDidMount Mounted后被调用,只在客户端
另外,还有一个初始化component的state的函数:getInitialState()
props和state差异: props是通过组件调用方在组件调用时指定,props一旦指定了,在一般情况下是不会改变的,尤其是对于被调用组件来说,props的拥有者是其调用方;而state是私属于当前组件的,state值是可变的(setState方法),state值的每一次变化,都会导致component从当前状态进入updating阶段,从而重新render。
Updating阶段有两个hook函数:
componentWillUpdate Updating前被调用,组件接收到新的props或者state但还没有render。在初始化时不会被调用。
componentDidUpdate 组件完成更新后立即调用。在初始化时不会被调用。
其次,还有另外两个函数:
componentWillReceiveProps() 当一个Mounted的component将要接受新的props时这个函数会被调用,其函数参数就是新的props对象
shouldComponentUpdate() 返回一个布尔值。当一个Mounted的component已经接收到新的props和state后判断是否有必要更新到DOM结构,这个函数的参数有两个,第一个函数参数是新的props对象,第二个参数是新的state对象,返回true表示更新
UNmounted阶段有一个hook函数:
componentWillUnmount() 在组件从 DOM 中移除的时候立刻被调用。在这个函数里可以执行一些cleanup()操作,比如释放内存资源,图片资源等。
相关文章推荐
- ReactJS组件的生命周期详解
- react组件生命周期
- javaweb-react的入门遇到的问题二:组件的生命周期
- React:组件的生命周期
- Android React Native组件的生命周期
- React Native 中组件的生命周期
- React组件生命周期过程说明
- React Native组件生命周期
- react学习笔记之组件生命周期
- [ReactNative] 03--ReactNative的生命周期 & render的Diff算法 & 组件之间的通信
- 从零开始学React(10)——组件的生命周期
- React:组件的生命周期
- React(3)--组件的生命周期
- React学习(二):组件的生命周期及数据流
- 学习React Native 笔记(三)React组件的生命周期
- React系列(六):React组件基础与生命周期
- React组件的生命周期
- React 组件生命周期
- React Native 中组件的生命周期
- React Native入门——组件构成及生命周期简介