react 生命周期

react生命周期分为三个阶段:

1.初始化
2.更新
3.销毁
  • 1.初始化
  • 1、getDefaultProps()
    设置默认的props,也可以用dufaultProps设置组件的默认属性.
  • 2、getInitialState()
    在使用es6的class语法时是没有这个钩子函数的,可以直接在constructor中定义this.state。此时可以访问this.props
  • 3、componentWillMount()
    组件初始化时只调用,以后组件更新不调用,整个生命周期只调用一次,此时可以修改state。
  • 4、render()
    1> react最重要的步骤,创建虚拟dom,进行diff算法,更新dom树都在此进行。此时就不能更改state了。
    2> 该方法会创建一个虚拟DOM,用来表示组件的输出。对于一个组件来讲,render方法是唯一一个必需的方法。render方法需要满足下面几点:
    **只能通过 this.props 和 this.state 访问数据(不能修改)
    **可以返回 null,false 或者任何React组件
    **只能出现一个顶级组件,不能返回一组元素
    **不能改变组件的状态
    **不能修改DOM的输出
    3> render方法返回的结果并不是真正的DOM元素,而是一个虚拟的表现,类似于一个DOM tree的结构的对象。react之所以效率高,就是这个原因。
  • 5、componentDidMount()
    组件渲染之后调用,只调用一次。
  • 2.更新
  • 1、componentWillReceiveProps(nextProps)
    组件初始化时不调用,组件接受新的props时调用。
  • 2、shouldComponentUpdate(nextProps, nextState)
    react性能优化非常重要的一环。组件接受新的state或者props时调用,我们可以设置在此对比前后两个props和state是否相同,如果相同则返回false阻止更新,因为相同的属性状态一定会生成相同的dom树,这样就不需要创造新的dom树和旧的dom树进行diff算法对比,节省大量性能,尤其是在dom结构复杂的时候
  • 3、componentWillUpdata(nextProps, nextState)
    组件初始化时不调用,只有在组件将要更新时才调用,此时可以修改state
  • 4、render()
    组件渲染
  • 5、componentDidUpdate()
    组件初始化时不调用,组件更新完成后调用,此时可以获取dom节点。
  • 3.卸载
  • componentWillUnmount()
    组件将要卸载时调用,一些事件监听和定时器需要在此时清除。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 参考链接1.生命周期参考链接12.生命周期参考链接2 组件继承了react Component等相关基类,也就是继...
    嘻小佳阅读 3,233评论 0 0
  • tips:很久没在简书更新文章了,欢迎大家逛逛我在github的博客点击查看 。 React v16.0前的生命周...
    aermin阅读 218,924评论 13 169
  • 组件的生命周期方法分以下三个阶段。 Mounting当创建组件的实例并将其插入到DOM中时,将调用这些方法:con...
    _八神光_阅读 4,850评论 0 0
  • 组件的详细说明 通过Reac.createClass({...})创建组件的时候,应该有一个render()方法,...
    凉介Seven阅读 2,571评论 0 0
  • 其实,我有一个秘密 趁着夜色微凉 趁着青春年少 我要悄悄的对你说 你知道吗? 春天的迎春花开了 绿茵遍地 我要对着...
    小甜心0820阅读 1,517评论 0 1

友情链接更多精彩内容