React简单组件的创建与使用

本文详细介绍了React组件的基本创建方法,包括通过继承React.Component创建组件、组件的使用、向组件传值、添加事件及解决事件中this指向问题。同时提供了实例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React简单组件的创建与使用

原文地址:React简单组件的创建与使用

创建React组件

通过定义一个class继承React.Component来创建一个React组件

class Header extends React.Component{
    //组件内必须要有render函数
    render(){
        //返回组件的模板
        return <p onClick={this.clickFun}>我是一个Header</p>
    }
}

使用React组件

将我们之前的组件直接放入需要渲染的dom中

const app = (
    <div>
        <Header></Header>
        <Header />
    </div>
)
//获取需要渲染的节点
const root = document.getElementById('app')
//将创建的app节点渲染进页面中
ReactDOM.render(app, root)

给组件传值

建立组件后,若是我们使用组件免不了需要传值,下面介绍下如何给组件传值

//定义一个子组件
class Header extends React.Component{
    render(){
        //可以获取传值进来的内容
        //this为当前组件的对象
        console.log(this.props)
        return <p>我是一个Header</p>
    }
}

const app = (
	<div>
        <!--给组件传值-->
    	<Header title="标题" />
    </div>
)
const root = document.getElementById("app")
ReactDOM.render(app,root)

添加事件

给子组件添加一个点击事件

class Header extends React.Component{
    //定义一个点击的方法
    clickFun(){
        console.log(点击了Header)
    }
    render(){
        //添加点击事件
        return <p onClick={this.clickFun}>我是一个Header</p>
    }
}
const app = (
    <div>
        <Header></Header>
        <Header />
    </div>
)
const root = document.getElementById('app')
ReactDOM.render(app, root)

点击事件方法的this指向问题解决办法:

//1.直接使用bind()方法改变this指向
class Header extends React.Component{
    clickFun(){
        console.log(this.props)
    }
    render(){
        return <p onClick={this.clickFun.bind(this)}>我是一个Header</p>
    }
}

//2.通过constructor将方法的this指向一直绑定在this上
//constructor 是一种用于创建和初始化class创建的对象的特殊方法。
class Header extends React.Component{
    constructor(props){
        super(props);
        this.clickFun = this.clickFun.bind(this)
    }
    clickFun(){
        console.log(this.props)
    }
    render(){
        return <p onClick={this.clickFun}>我是一个Header</p>
    }
}

注意:

  1. 组件命名最好首字母大写,避免与原生的节点名称冲突
  2. key值为特殊字段,通过组件传值无法获取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值