/*
1.初始化阶段:由ReactDOM.render()触发(初次渲染的时候)
1.construtor()
2.conponentWillMount()
3.render()
4.componentDidMount()
2.由组件内部this.setState()或父组件render触发
1.shouldComponentUpdate()
2.componentWillUpdate()
3.render()
4.compontentDidUpdate()
3.卸载组件:由ReactDOM.unmountConponentAtNode()触发
1.componentWillUnmount()
*/
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Document</title> 8 <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script> 9 10 <!-- 该文件向外暴露了一个对象 React-Dom --> 11 <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script> 12 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 13 <script src="https://unpkg.com/prop-types@15.6/prop-types.js"></script> 14 15 </head> 16 17 <body> 18 19 <div id="app"></div> 20 <script type="text/babel"> 21 class Father extends React.Component{ 22 constructor(props){ 23 super(props) 24 console.log('constructor') 25 } 26 state = { relation:'爸爸'}; 27 render(){ 28 return( 29 <div> 30 <h1>{this.state.relation}</h1> 31 <button onClick={this.changeRelation} >修改关系</button> 32 <button onClick = {this.destoryComponent}>销毁组件</button> 33 <Son relation={this.state.relation} /> 34 </div> 35 ) 36 } 37 destoryComponent = () =>{ 38 ReactDOM.unmountComponentAtNode(document.getElementById("app")) 39 } 40 componentWillMount(){ 41 console.log("componentWillMount") 42 } 43 componentDidMount(){ 44 console.log("componentDidMount") 45 } 46 shouldComponentUpdate(){ 47 console.log("shouldComponentUpdate") 48 return true; 49 } 50 componentWillUpdate(){ 51 console.log("componentWillUpdate") 52 } 53 componentDidUpdate(){ 54 console.log("componentDidUpdate") 55 } 56 componentWillUnmount(){ 57 console.log("componentWillUnmount") 58 } 59 changeRelation = ()=>{ 60 const {relation} = this.state 61 this.setState({relation:"儿子"}) 62 } 63 } 64 class Son extends React.Component{ 65 render(){ 66 return( 67 <div> 68 <h1>我是你:{this.props.relation}</h1> 69 </div> 70 ) 71 } 72 componentWillReceiveProps(){ 73 console.log("componentWillReceiveProps") 74 } 75 } 76 ReactDOM.render(<Father />,document.getElementById("app")) 77 </script> 78 </body> 79 80 </html>