React 初始化阶段,通过super来绑定组件身上的props
getDefaultProps: 只调用一次,只有组件的第一个实例被初始化的时候才会被调用,
getInitialState: 初始化每个实例特有的状态,从这个函数开始,每个实例被初始化的时候都会调用它,处理的是状态使用这个函数必须有return 值
1、constructor、通过super来绑定组件身上的props
2、static getDerivedStateFromProps(),就是从props里面导出state
生命周期的功能实际上就是将传入的props映射到state上面。
3、componentWillMount()/UNSAFE_componentWillMount
初始化页面
4、componentDidMount,这个阶段既可以调取数据了。
render
5、shouldComponentUpdate(nextProps, nextState):你可以通过这个方法控制组件是否重新渲染。如果返回 false 组件就不会重新渲染。这个生命周期在 React.js 性能优化上非常有用。
6、componentWillReceiveProps(nextProps):组件从父组件接收到新的 props 之前调用。
7、componentWillUpdate():组件开始重新渲染之前调用。
8、componentDidupdate
有两种情况:当父组件重新render的时候,或者父组件传值到子组件的时候,子组件将会重新进行渲染,这时候我们就要考虑到性能优化了,如何提高性能,就是在这一步,可以通过shouldComponentUpdate进行优化,
组件重新渲染并且把更改变更到真实的 DOM 以后调用。
render()
9、componentWillUnmount()
在此组件完成组件的卸载和数据的销毁,移出所有的监听
这里有一个小细节(就是有时候会碰到一个waring)原因就是当你在组件中的ajax请求返回的state,而你的组件销毁的时候请求还未完成,因此,会报waring