react生命周期

React生命周期分为三种状态,分别是mounting,updating,unmounting;意味着已插入真实的DOM,正在被重新渲染,已从真实的DOM移除。
因此,对应的生命周期方法有:
componentWillMount ,componentDidMount ,
componentWillReceiveProps ,shouldComponentUpdate ,
componentWillUpdate,componentDidUpdate ,
componentWillUnmount。

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class TestComp extends React.Component {
() {
console.log("componentWillMount");
}
componentDidMount() {
//可以在该方法中调用setTimeout,setInterval等操作。
console.log("componentDidMount");
}
componentWillReceiveProps(newProps) {
console.log("componentWillReceiveProps");
}
shouldComponentUpdate(newProps, newState) {
console.log("shouldComponentUpdate");
//如果为false,不会执行后面的生命周期方法
return true;
}
componentWillUpdate(newProps, newState) {
console.log("componentWillUpdate");
}
componentDidUpdate(newProps, newState) {
console.log("componentDidUpdate");
}
componentWillUnmount() {
console.log("componentWillUnmount");
}

render() {
return (
<div>
<h3>{this.props.number}</h3>
</div>
);
}
}

class IncreButton extends React.Component {
constructor(props) {
super(props);
this.state = {number: 0};
}

setNewNumber = () => {
this.setState({number: this.state.number +1});
}
render() {
return (
<div>
<button onClick = {this.setNewNumber}>加1</button>
<TestComp number = {this.state.number}></TestComp>
</div>
);
}
}

ReactDOM.render(
<div>
<IncreButton />
</div>,
document.getElementById("example")
);

注:
1.页面一加载,componentWillMount,componentDidMount
2.每次点击加1按钮后,componentWillReceiveProps,shouldComponentUpdate,componentWillUpdate,componentDidUpdate