React的生命周期
React的生命周期
1 生命周期
- 生命周期概念(组件从生到死的过程)
- 生命周期的作用
2 生命周期节点
- Mounting:挂载阶段
- Updating:运行时阶段
- Unmounting:卸载阶段
- Error Handling:错误处理(只处理在render方法)
3 代码演示
import React from 'react';import ReactDOM from 'react-dom';
require('./index.scss');
class Component extends React.Component{
// 构造函数
constructor(props){
super(props);
this.state = {
data : 'oldState',
}
console.log('初始化数据','constructor');
}
// 组件将要加载
componentWillMount(){
console.log('componentWillMount');
}
// 组件加载完成
componentDidMount(){
console.log('componentDidMount');
}
// 将要接收父组件传来的props
componentWillReceiveProps(){
console.log('componentWillReceiveProps');
}
// 子组件是不是应该更新
shouldComponentUpdate(){
console.log('shouldComponentUpdate');
return true;
}
// 组件将要更新
componentWillUpdate(){
console.log('componentWillUpdate')
}
// 组件更新完成
componentDidUpdate(){
console.log('componentDidUpdate')
}
// 组件将要销毁
componentWillUnmount(){
console.log('componentWillUnmount')
}
// 处理点击事件
handleClick(){
console.log('更新数据:');
this.setState({
data: 'newState'
});
}
// 渲染
render(){
console.log('render');
return(
<div>
<div>
Props: {this.props.data}
</div>
<button onClick={() => {this.handleClick()}}>更新组件</button>
</div>
)
}
}
class App extends React.Component{
// 构造函数
constructor(props){
super(props);
this.state = {
data : 'oldProps',
hasChild: true
}
console.log('初始化数据','constructor');
}
onPropsChange(){
console.log('更新props:')
this.setState({
data: 'newProps'
})
}
onDestoryChild(){
console.log('干掉子组件:');
this.setState({
hasChild: false
})
}
render(){
return(
<div>
{
this.state.hasChild ? <Component data={this.state.data}/> : null
}
<button onClick={() => {this.onPropsChange()}}>改变Props</button>
<button onClick={() => {this.onDestoryChild()}}>干掉子组件</button>
</div>
);
}
}
ReactDOM.render(
<div>
<App/>
</div>,
document.getElementById('app')
);
运行结果:
以上是 React的生命周期 的全部内容, 来源链接: utcz.com/z/382571.html