前言
就像人的一生,人的一生会经历出生,为世界作出变化,直到生命结束三大阶段。React Component 也有生命周期,分为三大阶段:
- Mounting
- Receive_Props
- Unmounting
Mounting阶段就像人的出生阶段,刚有了生命力;Receive_Props进入了为世界更改阶段;Unmounting代表组件的生命结束,要被Unmounting(removed)
具体看每个阶段会调用哪些生命周期函数
Mounting
1.getInitialState
为组件实例初始化state
2.componentWillMount:
在render(mounts)成虚拟DOM之前发生,所以更新state在这不会触发re-render
3.render
render组件为虚拟DOM. 如果shouldComponentUpdate返回false,那么render()将不调用
4.componentDidMount
完成render之后立即调用, 若你需要从远端加载数据,这是一个适合实现网络请求的地方。在该方法里设置状态将会触发重新渲染
目前组件Mounted,等待下一步触发事件引起改变
Receive_Props
1.componentWillReceiveProps:
发生在组件接收到receive props前
2.shouldComponentUpdate:
决定组件要不要更新,返回true代表组建应该render,返回false代表阻止组件render
3.componentWillUpdate:
这个方法和 componentWillMount 类似,在组件接收到了新的 props 或者 state 即将进行重新渲染前,componentWillUpdate(object nextProps, object nextState) 会被调用,注意不要在此方面里再去更新 props 或者 state。
4.render:render
组件为虚拟DOM
5.componentDidUpdate:
这个方法和 componentDidMount 类似,在组件重新被渲染之后,componentDidUpdate(object prevProps, object prevState) 会被调用。可以在这里访问并修改 DOM。
Unmounting
1.componentWillUnmount:
在组件被卸载和销毁之前立刻调用。可以在该方法里处理任何必要的清理工作,例如解绑定时器,取消网络请求,清理任何在componentDidMount环节创建的DOM元素
好了,先看到这里
引入生命周期函数的好处
由于生命周期规定了 -> 组件的状态和方法在何时可以被改变 -> 通过管理状态来管理组件
参考链接
Component Llifestyle Methods --- demo
demo代码讲解
http://blog.csdn.net/mpdemp/article/details/74923332
每天都努力一点点
谢谢你看完
网友评论