react创建组件的三种方式分别是什么
(推荐教程:react教程)
如果可能,尽量使用无状态组件,保持简洁和无状态。【笔者的意思就是尽量用父组件去操控子组件,子组件用来展示,父组件负责逻辑】

props属性类型和组件默认属性作为组建类的属性,不是组件实例的属性,所以使用类的静态性配置。
函数组件:
function App(props) { function handleClick() { props.dispatch({ type: 'app/create' }); } return <div onClick={handleClick}>{props.name}</div> }class组件
二、es5方式React.createClass组件
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、特点:
这种方式比较陈旧,慢慢会被淘汰
function myConponent(props) { return `Hello${props.name}` }2、特点
class App extends React.Component { handleClick() { this.props.dispatch({ type: 'app/create' }); } render() { return <div onClick={this.handleClick.bind(this)}>{this.props.name}</div> } }自己维护状态的对比
1、语法:
状态state是在constructor中初始化
1、组件名首字母要大写
新增了hooks的API可以去官网了解下,以前是无状态组件,现在是可以有状态的了
请大家瑾记创建组件的基本原则:
var myCreate = React.createClass({ defaultProps: { //code }, getInitialState: function() { return { //code }; }, render:function(){ return ( //code ); } })2、特点
一、函数式组件
成员函数不会自动绑定this,需要开发者手动绑定,否则this不能获取当前组件实例对象。
组件不能访问this对象
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组件:
2、组件只能包含一个根节点(如果这个根节点你不想要标签将它包住的话可以引入Fragment
1、语法
三、es6方式class:
由父组件控制状态的对比
3、尽量使用函数式组件,保持简洁和无状态。
3、建议:
最后我们对比一下函数组件和class组件对于一个相同功能的写法差距:
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创建组件的三种方式及他们的异同点介绍:
1、语法
不能访问生命周期方法
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/javascript/5396.shtml
相关文章
热门TAG
服务器 命令 技巧 详解 调用 标签 功能 织梦 javascript dedecms修改内容 织梦教程 php 白帽 企业网站 外链 权重 MYSQL 网站流量 实例解析 JSP 网站收录 搜索引擎 蜘蛛 windows jquery jquery教程 python tags标签 HTML 织梦cms最新文章
-
Javascript是什么?
时间:2021-01-04
-
Canvas入门实战之实现一个
时间:2021-01-04
-
11月份GitHub上最热门的Ja
时间:2021-01-04
-
一篇带给你JavaScript的Cla
时间:2021-01-04
-
详解js异步文件加载器
时间:2021-01-04
-
深入理解JavaScript中的箭头
时间:2021-01-04
-
复盘Node项目中遇到的13+常
时间:2021-01-04
-
连续3年稳居第一,全球
时间:2021-01-04
热门文章
-
连续3年稳居第一,全球1240万用户,Java
时间:2021-01-04
-
一篇带给你JavaScript的Class语法介绍
时间:2021-01-04
-
深入理解JavaScript中的箭头函数
时间:2021-01-04
-
Javascript在Chrome浏览器中调试的七个步骤
时间:2021-01-04
-
Canvas入门实战之实现一个图形验证码
时间:2021-01-04
-
详解js异步文件加载器
时间:2021-01-04
-
复盘Node项目中遇到的13+常见问题和解决方
时间:2021-01-04
-
11月份GitHub上最热门的JavaScript开源项目
时间:2021-01-04
-
Javascript是什么?
时间:2021-01-04
