首页 > 其他 > 详细

React生命周期

时间:2018-12-30 00:00:20      阅读:176      评论:0      收藏:0      [点我收藏+]

react生命周期

技术分享图片

class Counter extends React.Component {
  static defaultProps = {
    name:‘plus‘
  }
  constructor(props){
     super(props)
     this.state = {
       number:0
     }
     console.log(‘构造函数‘)
  }
  componentWillMount(){
    console.log(‘组件将要加载‘)
  }
  componentDidMount(){
    console.log(‘组件挂载完成‘)
  }
  handleClick = () => {
    this.setState({
      number:this.state.number+1
    })
  }
  shouldComponentUpdate(nextProps,nextState){
    console.log(‘组件是否更新‘)
    return nextState.number % 2
    ///如果此函数种返回了false 就不会调用render方法了
  }
  componentWillUpdate(){
    console.log(‘组件将要更新‘)
  }
  componentDidUpdate(){
    console.log(‘组件更新完成‘)
  }
  render(){
    console.log(‘render‘)
    return (
      <div>
        <p>{this.state.number}</p>
        {this.state.number > 3 ? null :<ChildCounter n={this.state.number}/>}
          <button onClick={this.handleClick}>+</button>
      </div>
    )
  }
}

class ChildCounter extends React.Component{
  componentWillUnMount(){
    console.log(‘组件将要卸载componentWillUnmount‘)
  }
  componentWillMount(){
    console.log(‘child componentWillMount‘)
  }
  render(){
    console.log(‘child-render‘)
    return (<div>
      {this.props.n}
    </div>)
  }
  componentDidMount(){
    console.log(‘child componentDidMount‘)
  }
  componentWillReceiveProps(newProps){ // 第一次不会执行,之后属性更新时才会执行
    console.log(‘child componentWillReceiveProps‘)
  }
  shouldComponentUpdate(nextProps,nextState){
    return nextProps.n % 3; //子组件判断接收的属性 是否满足更新条件 为true则更新
  }
}

ReactDOM.render(<Counter/>,document.getElementById(‘root‘))

React生命周期

原文:https://www.cnblogs.com/pluslius/p/10198326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!