react 组件传值的三种方法


Posted in Javascript onJune 03, 2019

整理 react 组件传值 三种方式

父组件向子组件传值(通过props传值)

子组件:

class Children extends Component{
    constructor(props){
      super(props);
    }
    render(){
      return(
        <div>这是:{this.props.name}</div> // 这是 父向子
      )
    }
  }

父组件:

class App extends React.Component{
    render(){
      return(
        <div>
          <Children name="父向子"/>
        </div>
      )
    }
  }

父组件向子组件传值(回调函数)

子组件

class Children extends Component{
    constructor(props){
      super(props);
    }
    handerClick(){
      this.props.changeColor('skyblue') // 执行父组件的changeColor 并传参 必须和父组件中的函数一模一样
    }
    render(){
      return(
        <div>
          <div>父组件的背景色{this.props.bgcolor}</div> // 子组件接收父组件传过来的值 bgcolor
          <button onClick={(e)=>{this.handerClick(e)}}>改变父组件背景</button> // 子组件执行函数
        </div>
      )
    }
  }

父组件

class Father extends Component{
    constructor(props){
      super(props)
      this.state = {
        bgcolor:'pink'
      }
    }
    bgChange(color){
      this.setState({
        bgcolor:color
      })
    }
    render(props){
      <div style={{background:this.state.bgcolor}}>
              // 给子组件传递的值 color 
        <Children bgcolor={this.state.bgcolor} changeColor={(color)=>{this.bgChange(color)}} /> 
                          // changeColor 子组件的参数=color 当做形参
      </div>
    }
  }

兄弟组件传值(子传给父,父再传给另一个子)

子组件1

class Children1 extends Component{
    constructor(props){
      super(props);
    }
    handerClick(){
      this.props.changeChild2Color('skyblue') 
      // 改变兄弟组件的颜色 把changeChild2Color的参数传给父
    }
    render(){
      return(
        <div>
          <div>children1</div>
          <button onClick={(e)=>{this.handerClick(e)}}>改变children2背景</button>
        </div>
      )
    }
  }

子组件2

class Children2 extends Component{
    constructor(props){
      super(props);
    }
    render(){
      return(
        <div style={{background:this.props.bgcolor}}>
        // 从父元素获取自己的背景色
          <div>children2 背景色 {this.props.bgcolor}</div>
          // children2 背景色 skyblue
        </div>
      )
    }
  }

父组件

class Father extends Component{
  constructor(props){
    super(props)
    this.state = {
      child2bgcolor:'pink'
    }
  }
  onchild2bgChange(color){
    this.setState({
      child2bgcolor:color
    })
  }
  render(props){
    <div>
      <Children1 changeChild2Color={(color)=>{this.onchild2bgChange(color)}} />
      <Children2 bgcolor={this.state.child2bgcolor} />
    </div>
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 在各个浏览器中执行的耐性
Apr 06 Javascript
jquery随机展示头像代码
Dec 21 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
May 20 Javascript
用svg制作富有动态的tooltip
Jul 17 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 #Javascript
Node.js 的 GC 机制详解
Jun 03 #Javascript
微信小程序蓝牙连接小票打印机实例代码详解
Jun 03 #Javascript
react-native滑动吸顶效果的实现过程
Jun 03 #Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 #Javascript
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 #Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 #Javascript
You might like
PHP新手上路(十四)
2006/10/09 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
教师推荐信范文
2013/11/24 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
餐饮营销方案
2014/02/23 职场文书
绩效考核实施方案
2014/03/18 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
工作犯错保证书
2015/05/11 职场文书
管辖权异议上诉状
2015/05/23 职场文书
薪资证明范本
2015/06/19 职场文书
开学典礼致辞
2015/07/29 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
python opencv旋转图片的使用方法
2021/06/04 Python
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS