• React数据通信父传子和子传父的使用


    组件中的props

    在react中,props的特点是:
    1.可以给组件传递任意类型的数据
    2.props是只读的对象,只能够读取属性的值,无法修改对象
    如过我们强行修改数据,会报错,告诉我们该属性是只读属性。
    
    ps:在类组件中,如果写了构造函数,应该将props传递给super().
    否则无法在构造函数中获取到props
    

    函数组件-父传子

    子组件.js
    const FunCom = (props) => { 
        return (
            <div>
                <h2>我是函数组件</h2>
                <p>我叫{ props.name}</p>
            </div>
        )
    }
    export default FunCom
    
    页面使用
    import React from 'react';
    import ReactDOM from 'react-dom'; 
    <!-- 引入 -->
    import FunCom from  './components/FunCom'
    ReactDOM.render(<FunCom name="李大为"/>, document.getElementById('root'))
    

    类组件-父传子

    子组件
    import React from "react";
    class FunCom extends React.Component{
        render() { 
            return (
                <div>
                    <h2>我是函数组件</h2>
                    <p>我叫{ this.props.name}</p>
                </div>
            )
        }
    }
    export default FunCom
    
    页面使用
    import React from 'react';
    import ReactDOM from 'react-dom'; 
    <!-- 引入 -->
    import FunCom from  './components/FunCom'
    ReactDOM.render(<FunCom name="李大为"/>, document.getElementById('root'))
    

    函数组件与类组件接收参数的区别

    函数组件接受参数直接是:props.xxx
    类组件接受参数直接是: this.props.xxx
    

    组件可以传递那些值?

    可以传递:可以传递数字, xxx={19}
    html,函数等等....
    详细代码如下
    
    父组件
    import React from 'react'; //这个是react这个包,我们是需要的
    import ReactDOM from 'react-dom'; //这个是react的虚拟dom
    import FunCom from './components/FunCom'
    
    ReactDOM.render(<FunCom name="李大为" age={19} fn={() => { console.log('我被出发了')}} tag={<h2>我是H2</h2>}  />,
      document.getElementById('root'))
    
    子组件
    import React from "react";
    class FunCom extends React.Component{
        render() { 
            console.log(this.props)
            return (
                <div>
                    <h2>我是函数组件</h2>
                    <p>我叫{this.props.name}</p>
                    { this.props.tag}
                </div>
            )
        }
    }
    export default FunCom
    

    子组件传递数据父组件

    1.父组件提供一个回调函数(用于接受数据)
    2.将该函数作为属性的值,传递给子组件
    
    儿子组件
    import React from "react";
    class FunCom extends React.Component{
        state = {
            msg:'儿子给父亲的数据'
        }
    
        // 将数据传递给父组件
        giveFtaher = () => { 
            this.props.giveChildren(this.state.msg)
        }
        render() { 
            return (
                <div>
                    <p>我是函数组件</p>
                    <button onClick={this.giveFtaher}>给父组件</button>
                </div>
            )
        }
    }
    export default FunCom
    
    父组件
    import React from 'react'; //这个是react这个包,我们是需要的
    import ReactDOM from 'react-dom'; //这个是react的虚拟dom
    import FunCom from './components/FunCom'
    
    
    class PartentHello extends React.Component {
      // 当点击按钮的收,子组件会触发这个方法
      getMsg = (data) => {
        console.log('接收到子组件的数据',data)
      }
    
      render() { 
        return (
          <div>
            <p>我是主页面</p>
            <FunCom giveChildren={ this.getMsg}></FunCom>
          </div>
        )
      }
    }
    ReactDOM.render(<PartentHello></PartentHello>,document.getElementById('root'))
    

  • 相关阅读:
    换手机了,dopod566,小E丢了 :(
    在a标签的href与onclick中使用javascript的区别
    我的SQL相关TIPS
    asp.net的ajax服务器端代理
    IE和Firefox中的dom加载完成执行代码(defer)
    看几个源码,自己多做项目了!
    数据层使用Server对象;动态生成控件多文件上传
    ref,out(摘)
    JavaScript和jQuery的DOM操作
    闭包
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/16344137.html
Copyright © 2020-2023  润新知