🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# React组件生命周期 React组件的生命周期分为三大阶段 ## 组件创建阶段: 组件创建阶段的生命周期函数,有一个显著的特点:创建阶段的生命周期函数,在组件的一辈子中,只执行一次; > constructor 组件初始时自动调用 > componentWillMount: 组件将要被挂载,此时还没有开始渲染虚拟DOM render:第一次开始渲染真正的虚拟DOM,当render执行完,内存中就有了完整的虚拟DOM了 > render(){}渲染成虚拟dom,将来可以用来去和老的虚拟dom进行diff算法。 页面中没有效果 > componentDidMount: 组件完成了挂载,此时,组件已经显示到了页面上,当这个方法执行完,组件就进入都了 运行中 的状态 ## 组件运行阶段 也有一个显著的特点,根据组件的state和props的改变,有选择性的触发0次或多次; > componentWillReceiveProps: 组件将要接收新属性,此时,只要这个方法被触发,就证明父组件为当前子组件传递了新的属性值;可以接收新的props和state,但是并未更新 > shouldComponentUpdate: 组件是否需要被更新,此时,组件尚未被更新,可以接收新的props和state,但是并未更新 > componentWillUpdate: 组件将要被更新,此时,尚未开始更新,可以接收新的props和state,内存中的虚拟DOM树还是旧的 > render: 此时state 和 props,已经是最新的,被更新的同时 重新渲染一棵内存中的 虚拟DOM树,当 render 调用完毕,内存中的旧DOM树,已经被新DOM树替换了!此时页面还是旧的 > componentDidUpdate: 此时,页面又被重新渲染了,state 和 虚拟DOM 和 页面已经完全保持同步 ## 组件销毁阶段: 也有一个显著的特点,一辈子只执行一次; > componentWillUnmount: 组件将要被卸载,此时组件还可以正常使用; 也可以参照下图来进行理解(不用重点掌握后面通过案例我们来了解就可以了) ![](https://box.kancloud.cn/d4a76851cd08a44bb57f7037fe1c5810_1101x1141.png) ![](https://box.kancloud.cn/1c14d8a7a85b626eccf1994765579a5b_1611x909.png) # 总结 在这章节课程中,我们需要知道解React的生命周期,分三阶段。初始,运行,销毁。 通过下一章节的案例来达到熟练应用即可。