按照我的理解,生命周期主要分为一下几个步骤:
- componentWillMount()
在组件第一次渲染之前调用,这个是在render方法调用前可修改state的最后一次机会。这个方法基本不会用到。
- render()
渲染虚拟dom。
- componentDidMount()
在组件第一次渲染后立即调用。一般会在这个方法里执行ajax,setinterval,settimeout等方法。因为ajax是异步请求,如果在componentWillMount()里执行的话,可能会在元素渲染出来之前执行,那么就会造成ajax请求失败。
- componentWillUnmount()
注销在componentDidMount()里注册的方法和函数,释放内存。
- compoentWillReceiveProps()
在组件接受到新的props时调用,每当组件更新rprops时就会被调用,初次渲染不会调用。在这里可以改变state。
- shouldComponentUpdate()
顾名思义,就是组件是否需要更新,是的话返回true,否则返回false,初次渲染不会调用。
- componentWillUpdate()
组件接收到新的props或者state但是还未调用时执行,初次渲染不会调用。这里不能改变state,或者是加判断改变state。否则会一直update,进入死循环。
- render()
渲染虚拟dom。
- componnetDidUpdate()
在组件完成更新时立即调用,初次渲染不会调用。
网友评论