react 15 生命周期

  • constructor:初化生命周期函数
    1.在这个生命周期函数里面,可以定义当前组件需要的一些状态,通过this.state = { }来定义状态
    2.当前生命周期必须使用super这个方法,否则会报错;当前组件的状态必须定义在this.state里面
    3.super( ):用来实现继承
  • componentWillMount:挂载前
    1.当constructor执行完毕以后当前的生命周期就会执行,在这个生命周期函数里面我们可以通过this.props访问到外部属性。
    2.在这个生命周期函数里面我们可以将外部属性转换为内部属性。
  • render:渲染
    1.render函数用来渲染虚拟DOM,其实就是讲真实的js对象与数据相结合生成真正的DOM
    2.render函数什么时候会执行?当this.state或者this.props的数据发生改变的时候那么render函数就会执行
    3.render函数第一次执行的时候会将渲染的结果保存在缓存中,当this.state 或者 this.props发生改变的时候,那么render函数就会再次执行,这次执行的时候会将上一次的缓存结果,和这一次渲染的结果进行对比,比较哪一个虚拟DOM节点发生了改变,找到这个节点后会重新渲染这个节点而不是虚拟DOM,像这样的对比方式叫做diff算法,当渲染完毕以后会将这次的结果再次保存在缓存之中
  • componentDidMount:挂载后,渲染完成
    1.当render函数执行完毕后,也就是虚拟DOM和数据结合完毕以后生成了真实的DOM结果,在这个声明周期函数里面我们可以获取到真是的DOM,同时也可以在当前的生命周期函数中进行ajax请求。
  • componentWillUnmount:销毁
    1.当组件被隐藏的时候就会被销毁掉,可以在这个生命周期里面将事件绑定的函数进行解绑等操作

ps:以上5个周期函数,除了render函数,其他生命周期函数都只会执行一次

  • componentWillReceiveProps
    1.当外部属性发生改变的时候当前生命周期函数就会执行,这个生命周期函数里面会接受到一个新的props
  • shouldComponentUpdate:dom是否开始改变(里面接收两个新值,一个是新的props,一个是新的state)
    1.如果this.state 或者 this.props发生改变的时候这个生命周期函数就回去执行
    2.当前生命周期函数必须要返回一个布尔值,如果返回true则进行更新,下面的生命周期数会执行;否则不更新,不执行。
    3.我们可以进行数据的对比来决定当前的虚拟DOM是否需要更新,可以提高性能。我们可以在当前的声明周期函数里面进行性能的优化
    4.当前生命周期函数判断的不是数据是否需要更新,而是DOM是否需要更新,哪怕在当前的生命周期函数中return false,this.state 或者 this.props里面的数据也会发生改变,只不过return false 时不会执行下面的生命周期函数了
  • componentWillUpdate:更新前
    1.如果shouldComponentUpdate返回值为true的话,就会执行当前生命周期函数,当前生命周期函数是更新前,在这里我们可以看到更新之前的DOM结构,这个生命周期函数是所以的数据和虚拟DOM准备就绪。等待渲染
    2.在当前生命周期函数里面接受到2个参数 一个是新的props 一个是新的state
  • componentDidUpdate
    1.当前生命周期函数是更新完毕,在这里我们可以获取最新的一些DOM结构。也可以看到更新后最新的一些数据
    2.在当前生命周期函数里面接受到2个参数 一个是旧的props 一个是旧的state
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值