React 組件的生命周期是指組件在它的整個生命週期中,會經歷哪些狀態,以及在每個狀態中會做什麼事情。React 組件的生命周期可以分為三個階段:初始化、更新和消滅。
初始化
初始化是 React 組件的第一個階段,在這個階段,React 組件會做以下事情:
- 初始化組件的狀態(state)
- 將 props 傳入組件
- 將組件渲染到 DOM 中
在初始化階段,React 組件會調用以下兩個方法:
constructor()
:在組件被渲染之前,會調用constructor()
方法,在這個方法中,可以初始化組件的狀態(state),以及將 props 傳入組件。
constructor(props) {
super(props);
this.state = {
name: 'John Doe'
};
}
render()
:在constructor()
方法執行完之後,會調用render()
方法,在這個方法中,可以將組件渲染到 DOM 中。
render() {
return (
<div>
<h1>Hello, {this.state.name}</h1>
</div>
);
}
更新
更新是 React 組件的第二個階段,在這個階段,React 組件會做以下事情:
- 更新組件的狀態(state)
- 更新組件的 props
- 更新組件的 DOM
在更新階段,React 組件會調用以下兩個方法:
componentWillReceiveProps()
:當組件接收到新的 props 時,會調用componentWillReceiveProps()
方法,在這個方法中,可以更新組件的 props。
componentWillReceiveProps(nextProps) {
this.setState({
name: nextProps.name
});
}
shouldComponentUpdate()
:當組件的 props 或 state 被更新時,會調用shouldComponentUpdate()
方法,在這個方法中,可以決定組件是否應該更新 DOM。
shouldComponentUpdate(nextProps, nextState) {
if (this.state.name !== nextState.name) {
return true;
}
return false;
}
消滅
消滅是 React 組件的第三個階段,在這個階段,React 組件會做以下事情:
- 清除組件的 DOM
- 清除組件的事件監聽器
- 清除組件的定時器
在消滅階段,React 組件會調用以下方法:
componentWillUnmount()
:當組件被從 DOM 中移除時,會調用componentWillUnmount()
方法,在這個方法中,可以清除組件的事件監聽器和定時器。
componentWillUnmount() {
clearInterval(this.timer);
document.removeEventListener('click', this.handleClick);
}
React 組件的生命周期是 React 組件的核心概念,它可以讓開發者更好地控制組件的行為,並且更好地管理組件的資源。