组件通信无外乎,下面这三种父子组件,子父组件,平行组件(也叫兄弟组件)间的数据传输。下面我们来分别说一下:

父子组件:

var Demo=React.createClass({getInitialState:function(){return{res:''}},tap:function(e){var str=e.target.value;this.setState({res:str})},render:function(){return(<div><h1>父组件</h1><input type="text" onChange={this.tap}/><Child name={this.state.res}/></div>
        )}
})
var Child=React.createClass({render:function(){console.log(this.props)return(<div><h1>子组件</h1><p>{this.props.name}</p></div>
        )}
})
ReactDOM.render(<Demo/>,document.getElementById('out'))

这里我们通过设置默认状态,添加onchange事件,并把状态以默认属性的形式给子组件,然后通过this.props来获取。

说完了父子组件,那么子组件如何传递到父组件呢?

<script type="text/babel">var Demo=React.createClass({getInitialState:function(){return{res:''}},render:function(){var _this=this;return(<div><h1>父组件</h1><p>{this.state.res}</p><Child name={function(s){_this.setState({res:s})}}/></div>
        )}
})
var Child=React.createClass({tap:function(e){var str=e.target.value;console.log(str)
//        this.props.name==function
//        this.props.name(a)==function(s)
//        a==sthis.props.name(str)
//        str==s
    },render:function(){console.log(this.props)return(<div><h1>子组件</h1><input type="text" onChange={this.tap}/>    </div>
        )}
})
ReactDOM.render(<Demo/>,document.getElementById('out'))</script>

【子组件】控制自己的 state 然后告诉【父组件】的点击状态,然后在【父组件】中展示出来。

----------------------------------------------------------------------------------------------------------------------------------------------------

同级组件间的通讯复杂点,不过这里可以说点思路,假如这两个组件拥有相同的父组件可以将父组件作为桥梁,一个组件先传递给父组件,然后父组件再传递给兄弟组件。

另外还可以使用观察着模式,还有redux。这两个我还没完全理解,日后再说。

转载于:https://www.cnblogs.com/ztl0918/p/6920963.html

React之组件通信相关推荐

  1. 一个播放器引发的思考——谈谈React跨组件通信

    在我们react项目日常开发中,往往会遇到这样一个问题:如何去实现跨组件通信? 为了更好的理解此问题,接下来我们通过一个简单的栗子说明. 实现一个视频播放器 假设有一个这样的需求,需要我们去实现一个简 ...

  2. React中组件通信的几种方式

    首次发表在个人博客 需要组件之进行通信的几种情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 1. 父组件向子组件通信 React数据流动是单向的,父组件向子组件 ...

  3. (React入门)组件通信

    1.父组件向子组件通信 props 父组件直接通过props向子组件传递需要的信息 import React, { Component } from 'react' //子组件 class Child ...

  4. react父子组件通信

    欢迎关注微信公众号:[ 全栈攻略 ] 在 React 中,数据是自顶而下单向流动的,即从父组件到子组件. 所以就存在父子组件之间的通信的必要性了. 父组件.jsx import React from ...

  5. React兄弟组件通信

    1.在父组件定义好回调函数接收组件A传过来的值 // 引入组件 import SonA from "./components/SonA" import SonB from &quo ...

  6. react父子组件通信案例

    父组件:App组件 子组件:Search组件.List组件 案例需求:文本框中输入关键词,点击搜索按钮后,下方列表展示出搜索结果 实现思路: 子组件Search组件向父组件App传递状态(状态包括:是 ...

  7. React兄弟组件之间通信

    兄弟组件之间通信 React是只有单项数据流动模式,也就是只能父组件的数据传递给子组件,而没有办法将子组件的数据传递给父组件.那么如果想要两个子兄弟组件通信该怎么办呢? 答案是可以通过子组件向父组件推 ...

  8. React组件通信--props

    React组件通信 1.props接收数据 //index.js import App from "./App";ReactDOM.render(<App name='传递数 ...

  9. [react] react兄弟组件如何通信?

    [react] react兄弟组件如何通信? 状态提升,通过父组件的state和方法传递到两个子组件 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 ...

最新文章

  1. 简单ThreadPool实现
  2. Excel表格快速将公式运用到一整列
  3. 【风控场景】互利网上数字金融典型场景: 网络借贷
  4. php无限极分类设计,递归方式已经淘汰了
  5. HDFS读写文件实例与解析
  6. 排列与组合的Java递归实现 (参考)
  7. 嵌入式linux 零基础-实践起步 --- 003 --- 交叉编译中环境变量PATH的设定
  8. axure,购物车数量递增或递减
  9. 许三多修路带给我们成功的启示
  10. 急速了解vue生命周期
  11. Atitit 命令行执行sql 跨语言 目录 1.1. 无需输入密码,那就不要-p参数即可 1 1.2. 4.使用mysql命令执行 1 1.3. 5.mysql命令执行sql,并将查询结果保存到
  12. 直播中不可缺少的一环-rtmp直播推流
  13. nmap 端口扫描基本使用方法
  14. VIM编辑器配置文件修改
  15. 英特尔oneAPI—开拓
  16. 【3153万】巴菲特午餐再创天价!细数曾与股神共进午餐的中国大佬丨湾区人工智能...
  17. 网易历届笔试面试题整理大全
  18. delphi 获取打印机默认纸张_Delphi中如何控制打印方向,纸张大小等 | 学步园
  19. python学法用法 自动刷分_使用python对微信小游戏跳一跳刷分
  20. nginx报错找不到指定路径

热门文章

  1. tt协议号服务器,TTIot: TTIoT云端物联网Iot组件;面向JAVA;netty;mqtt;异步推送;以事件为驱动;为设备提供安全可靠的连接通信能力;...
  2. java get null_java 获取对象中为null的字段实例代码
  3. STM32-串口接收、发送数据实验-程序代码分析
  4. (kruskal算法复习+模板)Eddy's picture
  5. 流放之路材质过滤怎么设置_松下除湿机怎么样 松下除湿机款式有哪些型号【详解】...
  6. sap 一代增强_在SAP故乡,感受“边缘智能”之变
  7. html输入密码跳转页面_【小乔锦囊】角色/仓库密码无法清除,怎么办?
  8. android点击运行后无法显示设备,Android仿真器除了黑屏外什么都不显示,adb设备显示“设备离线”...
  9. linux iso的引导文件,Linux_从硬盘启动Desktop ISO所需的引导文件,一、仅从硬盘启动Destdop ISO 并 - phpStudy...
  10. red flag linux指定域名,Red Flag Server 4.1 系统管理手册(适用桌面linux4.1) 6