React生命周期方法(我常用的)

本文主要探讨了React中几个常用的生命周期方法,包括constructor()用于初始化state和创建ref,componentDidMount()在组件渲染到DOM后调用,常用于页面初始化接口调用,render()作为React必备方法用于展示state和props的值,以及componentDidUpdate()在组件更新后被调用,处理props和state的更新。参考React官方文档以获取更详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

constructor()

  • 初始化state
  • 创建ref
import React, { Component } from 'react';

class demo extends Component {
	constructor(props) {
		super(props);
		this.state = {
			dataSource: []
		}
		this.xxRef = React.createRef();
	}
	render() {
		const {
			name
		} = this.state;
		return(<div></div>)
	}
}

export default demo;

componentDidMount()

  • 组件已经被渲染到 DOM 中后运行
  • 一般用于页面初始化的接口调用
import React from 'react';
import * as http from './http'; // 封装好的httpServer

class demo extends Component {
	constructor(props) {
		super(props);
		this.state = {
			dataSource: []
		}
	}
	componentDidMount() {
		this.getTableData();
	}
	getTableData = () => {
		http.getTableDataServer({}).then(res=>{
			this.setState({
				dataSource: res.data
			});
		}
	}
	render() {
		const {
			name
		} = this.state;
		return(<div></div>)
	}
}

export default demo;

render()

  • React必须有的方法
  • 展示state、props的值等
import React from 'react';

class demo extends Component {
	constructor(props) {
		super(props);
		this.state = {
			name: 'Liz'
		}
	}
	render() {
		const {
			name
		} = this.state;
		return(<div>
			<div>姓名:{name}</div>
		</div>)
	}
}

export default demo;

componentDidUpdate()

  • 更新后会被立即调用
  • prevProps props更新前后
  • prevState state更新前后
  • snapshot
import React from 'react';
import { DatePicker } from 'antd';
import moment from 'moment';
const dateFormat = 'YYYY-MM-DD';

class demo extends Component {
	constructor(props) {
		super(props);
		this.state = {
			defaultDate: moment(util.getStart(), dateFormat).subtract(6, 'days'),
			currentTime: ''
		}
	}
	componentDidUpdate(prevProps, prevState, snapshot) {
		const { currentTime } = this.state;
		if(currentTime && currentTime !== prevState.currentTime) {
			this.getData(); // 根据时间调用数据函数,略
		}
	}
	// 日期选择器,改变日期state。state一变,触发componentDidUpdate()方法,调用this.getData();函数
	dateChange = (dates) => {
		this.setState({
			currentTime: dates.startOf('week').format('YYYY-MM-DD')
		});
	}
	render() {
		const {
			defaultDate
		} = this.state;
		return(<div>
			<div>
				<span>当前周:</span>
				<DatePicker
					picker="week"
					defaultValue={defaultDate}
					allowClear={false}
					onChange={this.dateChange} />
			</div>
		</div>)
	}
}

export default demo;

参考文章
React官方文档:React.Component

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值