zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    《花好月圆夜》
    关于Url重写
    三大WEB服务器对比分析(apache ,lighttpd,nginx)
    APC 和 Memcache 有什么区别,哪个更好效率更高?
    URL优化不仅仅是静态化重写URL
    php中的静态变量和动态变量的区别框架加载变量时运用
    msicuu.exe (msizap.exe),程序的作用
    显示器接口针脚定义(Dsub15)
    图文教程:DIY全屏开机LOGO详解
    ASP.NET中的媒体播放
  • 原文地址:https://www.cnblogs.com/gaoxuerong123/p/9445988.html
Copyright © 2011-2022 走看看