您的位置是:网站首页>Javascript编程Javascript编程

react创建组件的三种方式是什么

少儿编程网2021-09-14 15:23:55Javascript编程 人已围观 来源:少儿编程 -用户投稿

简介下面是react创建组件的三种方式及特点,希望能够对大家有所帮助。1、函数式组件:(1)语法:functionmyConponent(props){return`Hello${props.name}`}(2)特点:新增了hooks的API可以去官网了解下,以前是无状态组件,现在是可以有状态的了组件不

版权所有:https://wWw.pxcodeS.com
gfm少儿编程网-https://www.pxcodes.com

下面是react创建组件的三种方式及特点,希望能够对大家有所帮助。gfm少儿编程网-https://www.pxcodes.com

1、函数式组件:gfm少儿编程网-https://www.pxcodes.com

(1)语法:gfm少儿编程网-https://www.pxcodes.com

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

(2)特点:gfm少儿编程网-https://www.pxcodes.com

新增了hooks的API可以去*网了解下,以前是无状态组件,现在是可以有状态的了gfm少儿编程网-https://www.pxcodes.com

组件不能访问this对象gfm少儿编程网-https://www.pxcodes.com

不能访问生命周期方法gfm少儿编程网-https://www.pxcodes.com

(3)建议:gfm少儿编程网-https://www.pxcodes.com

如果可能,尽量使用无状态组件,保持简洁和无状态。【笔者的意思就是尽量用父组件去操控子组件,子组件用来展示,父组件负责逻辑】gfm少儿编程网-https://www.pxcodes.com

2、es5方式React.createClass组件
gfm少儿编程网-https://www.pxcodes.com

(1)语法:gfm少儿编程网-https://www.pxcodes.com

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

(2)特点:gfm少儿编程网-https://www.pxcodes.com

这种方式比较陈旧,慢慢会被淘汰gfm少儿编程网-https://www.pxcodes.com

(免费视频教程推荐:javascript视频教程)gfm少儿编程网-https://www.pxcodes.com

3、es6方式class:gfm少儿编程网-https://www.pxcodes.com

(1)语法:gfm少儿编程网-https://www.pxcodes.com

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)特点:gfm少儿编程网-https://www.pxcodes.com

成员函数不会自动绑定this,需要开发者手动绑定,否则this不能获取当前组件实例对象。gfm少儿编程网-https://www.pxcodes.com

状态state是在constructor中初始化gfm少儿编程网-https://www.pxcodes.com

props属性类型和组件默认属性作为组建类的属性,不是组件实例的属性,所以使用类的静态性配置。gfm少儿编程网-https://www.pxcodes.com

请朋友们瑾记创建组件的基本原则:gfm少儿编程网-https://www.pxcodes.com

  • 组件名首字母要大写gfm少儿编程网-https://www.pxcodes.com

  • 组件只能包含一个根节点(如果这个根节点你不想要标签将它包住的话可以引入Fragment,Fragment不会用没关系,可以观看笔者的react基础知识整理(1)这篇文章)gfm少儿编程网-https://www.pxcodes.com

  • 尽量使用函数式组件,保持简洁和无状态。gfm少儿编程网-https://www.pxcodes.com

**后我们对比一下函数组件和class组件对于一个相同功能的写法差距:gfm少儿编程网-https://www.pxcodes.com

由父组件控制状态的对比gfm少儿编程网-https://www.pxcodes.com

函数组件:gfm少儿编程网-https://www.pxcodes.com

function App(props) {
	function handleClick() {
		props.dispatch({ type: 'app/create' });
	}
	return <div onClick={handleClick}>{props.name}</div>
}

class组件:gfm少儿编程网-https://www.pxcodes.com

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

自己维护状态的对比gfm少儿编程网-https://www.pxcodes.com

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

class组件:gfm少儿编程网-https://www.pxcodes.com

class App extends React.Component {
	state = { count: 0 }
	handleClick() {
		this.setState({ count: this.state.count +1 })
	}
	render() {
		return <div onClick={this.handleClick.bind(this)}>{this.state.count}</div>
	}
}

相关推荐:react教程

以上就是react创建组件的三种方式是什么的详细内容,更多请关注少儿编程网其它相关文章!gfm少儿编程网-https://www.pxcodes.com

来源:php中文网gfm少儿编程网-https://www.pxcodes.com

版权所有:https://wWw.pxcodeS.com

相关文章:

支持一下 ( )

react创建组件的三种方式是什么

      匿名评论
    • 评论
    人参与,条评论
    react创建组件的三种方式是什么

微信公众号

免费视频教程

先知道