• 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();
  • 相关阅读:
    Tita 360 评估:新员工转正评估模版
    360反馈实例实例:如何给他人的弱点进行反馈
    数据库无法查询中文问题的解决过程
    sql server中判断表或临时表是否存在的方法
    5G网络
    Sqlserver中使用DBLINK
    Oracle 11g 安装图文教程
    SqlServer的Pivot和Unpivot用法
    ORACLE常用傻瓜問題1000問
    SqlServer的PIVOT、UNPIVOT将行转成列,列传成行
  • 原文地址:https://www.cnblogs.com/gaoxuerong123/p/9445988.html
Copyright © 2020-2023  润新知