创建React组件的几种方式的对比

1.React.createClass创建组件方式

import React,{Component} from 'react';

const Foo = React.createClass({
    render(){
        return(
            <div>我的传统的方式创建的组件</div>
        )
    }
})
export default Foo;

2.ES6 class创建方式

import React,{Component} from 'react';

export default class Test extends Component{
    render(){
        return(
            <div>我是Es6的class创建方式创建的</div>
        )
    }
}

3.无状态函数创建方式

import React,{Component} from 'react';

export default function Bar() {
    return(
        <div>我是无状态函数创建方式</div>
    )
}

4.关于无状态组件之间数据传递的方式

import React, {Component} from "react";

//创建一个组件
function Button(props) {
    return(
        <button style={{background:props.color}}>{props.children}</button>
    )
}
Button.propTypes = {
    color:React.PropTypes.string.isRequired,
    children:React.PropTypes.string.isRequired,
}

//创建第二个组件
function Message(props){
    return(
        <li>
            <p>{props.text}</p>
            <Button color={props.color}>Delete</Button>
        </li>
    )
}

Message.propTypes = {
    text:React.PropTypes.string.isRequired,
    color:React.PropTypes.string.isRequired,
}

//创建主组建
export default function MessageList() {
    const color="red";
    const message = [
        {text:'Hello React'},
        {text:'Hello Redux'},
    ];
    return(
        <div>
            <p>通过props将color逐层传递给Button组件</p>
            {
                message.map((item,index)=>(
                    <Message key={`list-${index}`} color={color} text={item.text}/>
                ))
            }
        </div>
    )
}

5.无状态组件的说明

  • 无状态组件没有实例化对象,因此无法使用生命周期函数,也没有内部状态
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水痕01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值