企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
react生命周期分为三中转态:初始转态,更新状态以及卸载状态 ***** ### 初始转态: ***1、getDefaultProps()*** ~~~ 此时可设置初始(默认)的props ~~~ ***2、getInitialState()*** ~~~ 在es6语法中已移除,改为在constructor设置初始的state值 ~~~ ***3、componentWillMount()*** ~~~ 在组件渲染前调用,此时dom还未挂载在html中,此函数整个生命周期只调用一次,可修改state ~~~ ***4、 render()*** ~~~ 组件渲染时调用,虚拟dom的创建及更新都会在此时进行 ~~~ ***5、componentDidMount()*** ~~~ 组件渲染完成后调用,此时可获取dom节点,该函数整个生命周期只调用一次,可修改state ~~~ ### 更新状态 ***6、componentWillReceiveProps(nextProps)*** ~~~ 组件接受到新的props时调用,初始化时不调用 ~~~ ***7、shouldComponentUpdate(nextProps, nextState)*** ~~~ 组件接受新的props或state时调用,判断是否需要更新,接受的两个参数分别为即将更新的props和state状态值,可与this.porps与this.state(即更新前的状态)对比,该函数回返回一个boolean类型,默认为true,即更新dom树 ~~~ ***8、componentWillUpdata(nextProps, nextState)*** ~~~ 组件将要更新时调用,接受的两个参数分别为即将更新的props和state状态值。不可在此时更改state,不然会导致无限循环更新state,从而崩溃报错 ~~~ ***9、render()*** ~~~ 更新完成后再次渲染 ~~~ ***10、componentDidUpdate()*** ~~~ 更新完成后调用,同样可获取dom节点,初始化时不调用 ~~~ ### 卸载状态 ***11、componentWillUnmount()*** ~~~ 组件将要卸载时调用,可以在此时清除定时器与一些监听事件 ~~~