React的生命周期

<script type="text/babel">
  const { Component, useState } = React;
  class App extends Component {
    // 在使用class定义组件的时候 此方法相当于初始化阶段
    constructor(props) {
      super(props)
      this.state = {
        now: (new Date())
      }
      setInterval(() => {
        this.resetTime()
      }, 1000);
    }
    resetTime() {// 更新当前的时间之后 会触发shouldComponentUpdate方法
      this.setState({
        now: (new Date())
      })
    }
    componentWillMount() {
      console.log('组件渲染之前');
    }
    componentDidMount() {
      console.log('组件挂载完成之后执行');
    }
    componentWillReceiveProps(p) {
      console.log('组件接收props属性值');
    }

    // 此方法用以判断是否需要对组件进行更新,返回true或者false. 默认返回false
    shouldComponentUpdate(p, s) {
      console.log('组件是否需要更新')
      return true
    }

    // 当state或者props发生改变之后会执行组件的更新流程
    componentWillUpdate() {
      console.log('组件更新之前执行')
    }
    componentDidUpdate() {
      console.log('组件更新完成之后执行')
    }
    componentWillUnMount() {
      console.log('组件卸载之后执行')
    }
    render() {
      console.log('组件执行渲染!!!!!!!!!!!!!!!!!!!!!!')
      return (<div className="container">
        <h3>我是一个标签</h3>
        <p>当前事件为:{this.state.now.toUTCString()}</p>
      </div>)
    }
  }
  ReactDOM.render(<App />, document.getElementById('root'))
</script>

结果:

注:

      当shouldComponentUpdate()的返回值设为false时,不会更新组件,会重复执行console.log('组件是否需要更新')

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值