html组件创建的方法,怎么创建react组件

c42bd5329af5f994902d5b203b697d1c.png

怎么创建react组件

创建react组件有3种方式,分别是无状态函数式组建、es5原生方式、继承React.Component(ES6形式)。

一、无状态函数式组建

无状态函数式组件,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑。

无状态函数式组件也是官方比较推荐的一种方式,尽量让底层的组件变成无状态函数式组件,也即组件尽量只用来显示数据,把数据操作的逻辑都放在顶层,然后从顶层把数据传到底层。

举个例子//顶层代码

import React,{Component} from 'react';

import ReactDOM from 'react-dom';

import Button from './component/props'

ReactDOM.render(

,

document.getElementById('body')

)

//底层代码

import React,{Component} from 'react';

export default function Button(props){

let {name} = props

const sayHi = () => {

alert(`Hi ${name}`);

}

return (

Hello, {name}

Say Hi

)

}

二、es5原生方式(React.createClass)

React.createClass 是react刚开始推荐的创建组件的方式,这是ES5的原生的JavaScript来实现的React组件

举个例子const Button = React.createClass({

propTypes: { //②属性类型

name: React.PropTypes.string

},

defaultProps: { //③属性默认值

name: ''

},

getInitialState: function() { //①初始状态

return {

name: this.props.name|| 'name'

};

},

sayHi() {

alert(`Hi ${name}`);

}

render() {

return (

Hello, {name}

Say Hi

);

}

});

三、继承React.Component(ES6形式)

React.Component 是以ES6的形式来创建react的组件的,是React目前极为推荐的创建有状态组件的方式。

举个例子export default class Button extends React.Component {

static propTypes = { //②属性类型

name: React.PropTypes.string

};

static defaultProps = { //③属性默认值

name: ''

};

constructor(props) {

super(props);

this.state = { ①初始状态

name: props.name|| 'name'

};

// ES6 类中函数必须手动绑定

this.sayHi= this.sayHi.bind(this);

}

sayHi() {

alert(`Hi ${name}`)

}

render() {

return (

Hello, {name}

Say Hi

);

}

}

本文来自React答疑栏目,欢迎学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值