react如何创建组件
创始人
2024-11-21 08:00:32
0次

react创建组件的三种方式及他们的异同点介绍:

一、函数式组件

1、语法

function myConponent(props) {
	return `Hello${props.name}`
}

2、特点

新增了hooks的API可以去官网了解下,以前是无状态组件,现在是可以有状态的了

组件不能访问this对象

不能访问生命周期方法

3、建议:

如果可能,尽量使用无状态组件,保持简洁和无状态。【笔者的意思就是尽量用父组件去操控子组件,子组件用来展示,父组件负责逻辑】

二、es5方式React.createClass组件

1、语法

var myCreate = React.createClass({
	defaultProps: {
		//code
	},
	getInitialState: function() {
		return { //code };
	},
	render:function(){
		return ( //code );
	}
})

2、特点

这种方式比较陈旧,慢慢会被淘汰

三、es6方式class:

1、语法:

class InputControlES6 extends React.Component {
	constructor(props) {
		super(props);
		this.state = {
			state_exam: props.exam
		}
		//ES6类中函数必须手动绑定
		this.handleChange = this.handleChange.bind(this);
	}
	handleChange() {
		this.setState({
			state_exam: 'hello world'
		});
	}
	render() {
		return( //code )
	};
}

2、特点:

成员函数不会自动绑定this,需要开发者手动绑定,否则this不能获取当前组件实例对象。

状态state是在constructor中初始化

props属性类型和组件默认属性作为组建类的属性,不是组件实例的属性,所以使用类的静态性配置。

请大家瑾记创建组件的基本原则:

1、组件名首字母要大写

2、组件只能包含一个根节点(如果这个根节点你不想要标签将它包住的话可以引入Fragment

3、尽量使用函数式组件,保持简洁和无状态。

最后我们对比一下函数组件和class组件对于一个相同功能的写法差距:

由父组件控制状态的对比

函数组件:

function App(props) {
	function handleClick() {
		props.dispatch({ type: 'app/create' });
	}
	return 
{props.name}
}

class组件

class App extends React.Component {
	handleClick() {
		this.props.dispatch({ type: 'app/create' });
	}
	render() {
		return 
{this.props.name}
} }

自己维护状态的对比

import React, { useState } from 'react';
function App(props) {
	const [count, setCount] = useState(0);
	function handleClick() {
		setCount(count + 1);
	}
	return 
{count}
}

class组件:

class App extends React.Component {
	state = { count: 0 }
	handleClick() {
		this.setState({ count: this.state.count +1 })
	}
	render() {
		return 
{this.state.count}
} }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...