关于react的组件间传参,今天自己全部写了一遍

8 篇文章 1 订阅
6 篇文章 0 订阅

组件间传参-react props组件间传参

今天很高兴,因为确实对于react用的半知不解的,有些东西很迷茫的,但是又不大好意思麻烦别人,就今天整理出来后就感觉到了很顺畅,很有成就感
忍不住想分享一下,嘻嘻
props是react的三大属性之一,主要用于数据传参
父组件给组件传参:
父组件中在子组件的实例上面泻药传的属性,然后在子组件中直接通过this.props直接接收

---------------父组件
import React, { Component } from 'react'
import Son from './S'
export default class F extends Component {
    constructor(props) {
        super(props)
        this.state = {
            name: 'hello,柒柒',
            title: '这是标题'
        }
    }
    render() {
        return (
            <div>
                <div style={{color:'red'}}>
                    <Son work="工作" name="tom" age={18} />
             </div>
          )
      }
}
----------子组件
import React, { Component } from 'react'
export default class Son extends Component {
    constructor(props) {
        super(props)
        this.state={}
    }
    render() {
        return (
            <div style={{fontSize: '20px', margin:'10px auto', width: '300px', height:'200px', border: '1px dashed red'}}>
                <div>父组件给子组件传值</div>
                <div>
                   <p> {this.props.name} </p>
                   <p> {this.props.work} </p>
                   <p> {this.props.age} </p>
                </div>
            </div>
        )
    }
}

子组件给父组件传参:
在子组件中用函数方法来进行参数的传递,然后将数据在父组件中使用bind绑定this

--------父组件
import React, { Component } from 'react'
import S1 from './S1'
export default class F1 extends Component {
    constructor(props) {
        super(props)
        this.state = {
            email: ''
        }
    }
    handleEmail = (event) => {
        this.setState({
            email: event.target.value
        })
    }
    render() {
        return (
            <div>
                <div>用户邮箱:{this.state.email}</div>
                <S1 name="email" handleEmail={this.handleEmail.bind(this)} />
            </div>
        )
    }
}
-------------子组件
import React, { Component } from 'react'
export default class S1 extends Component {
    render() {
        return (
            <div>
                请输入邮箱:<input onChange={this.props.handleEmail}/>
            </div>
        )
    }
}

兄弟组件间传值
先兄弟组件1传给父组件,本质上就是子组件传给父组件
然后就是父组件传给兄弟组件2,本质上是父组件传给子组件

----------父组件
import React, { Component } from 'react'
import S2 from './S2'
import G from './G'
export default class F2 extends Component {
    constructor(props) {
        super(props)
        this.state = {
            value: ''
        }
    }
    handValue = (event) => {
        // console.log(event.target.value); //  
        this.setState({
            ...this.state,
            value: event.target.value
        })
    }
    render() {
        return (
            <div>
                <p>父组件:</p>
                <div>父组件中收到来自于兄弟组件1:{this.state.value}</div>
                <S2 handValue={this.handValue.bind(this)} />
                <G value={this.state.value} /> // 父组件传给子组件呢
            </div>
        )
    }
}
------------兄弟组件1
import React, { Component } from 'react'
export default class S2 extends Component {
    render() {
        return (
            <div>
                <p>兄弟组件1:<input onChange={this.props.handValue} /></p>
            </div>
        )
    }
}
------------兄弟组件2
import React, { Component } from 'react'
export default class G extends Component {
    render() {
        return (
            <div>
                <p>兄弟组件2:{this.props.value}</p>
            </div>
        )
    }
}

这些就是我今天写的,写完之后瞬间感觉我不卡了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值