React的生命周期

React的生命周期

1 生命周期

  • 生命周期概念(组件从生到死的过程)
  • 生命周期的作用(在React里添加了一些关键的节点,更加灵活)

2 生命周期节点

  • Mounting:挂载阶段
  • Updating:运行时阶段
  • Unmounting:卸载阶段
  • Error Handling:错误处理(只处理在render方法)

3 代码演示

import React from 'react';
import ReactDOM from 'react-dom';

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')
);

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值