react生命周期

  1 // import React from 'react';
  2 // import ReactDOM from 'react-dom';
  3 // import './index.css';
  4 // import App from './App';
  5 // import registerServiceWorker from './registerServiceWorker';
  6 
  7 // ReactDOM.render(<App />, document.getElementById('root'));
  8 // registerServiceWorker();
  9 
 10 
 11 
 12 
 13 
 14 import React from 'react'
 15 import ReactDOM from 'react-dom';
 16 import registerServiceWorker from './registerServiceWorker';
 17 class SubCounter extends React.Component {
 18     componentWillReceiveProps() {
 19         console.log('9、子组件将要接收到新属性');
 20     }
 21 
 22     shouldComponentUpdate(newProps, newState) {
 23         console.log('10、子组件是否需要更新');
 24         if (newProps.number < 5) return true;
 25         return false
 26     }
 27 
 28     componentWillUpdate() {
 29         console.log('11、子组件将要更新');
 30     }
 31 
 32     componentDidUpdate() {
 33         console.log('13、子组件更新完成');
 34     }
 35 
 36     componentWillUnmount() {
 37         console.log('14、子组件将卸载');
 38     }
 39 
 40     render() {
 41         console.log('12、子组件挂载中');
 42         return (
 43                 <p>{this.props.number}</p>
 44         )
 45     }
 46 }
 47 
 48 class Counter extends React.Component {
 49     static defaultProps = {
 50         //1、加载默认属性
 51         name: 'sls',
 52         age:23
 53     };
 54 
 55     constructor() {
 56         super();
 57         //2、加载默认状态
 58         this.state = {number: 0}
 59     }
 60 
 61     componentWillMount() {
 62         console.log('3、父组件挂载之前');
 63     }
 64 
 65     componentDidMount() {
 66         console.log('5、父组件挂载完成');
 67     }
 68 
 69     shouldComponentUpdate(newProps, newState) {
 70         console.log('6、父组件是否需要更新');
 71         if (newState.number<15) return true;
 72         return false
 73     }
 74 
 75     componentWillUpdate() {
 76         console.log('7、父组件将要更新');
 77     }
 78 
 79     componentDidUpdate() {
 80         console.log('8、父组件更新完成');
 81     }
 82 
 83     handleClick = () => {
 84         this.setState({
 85             number: this.state.number + 1
 86         })
 87     };
 88 
 89     render() {
 90         console.log('4、render(父组件挂载)');
 91         return (
 92             <div>
 93                 <p>{this.state.number}</p>
 94                 <button onClick={this.handleClick}>+</button>
 95                 {this.state.number<10?<SubCounter number={this.state.number}/>:null}
 96             </div>
 97         )
 98     }
 99 }
100 ReactDOM.render(<Counter/>, document.getElementById('root'))
101 registerServiceWorker();
posted @ 2018-08-08 22:06  gaoxuerong  阅读(128)  评论(0编辑  收藏  举报