React之组件通信
组件通信无外乎,下面这三种父子组件,子父组件,平行组件(也叫兄弟组件)间的数据传输。下面我们来分别说一下:
父子组件:
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之组件通信相关推荐
- 一个播放器引发的思考——谈谈React跨组件通信
在我们react项目日常开发中,往往会遇到这样一个问题:如何去实现跨组件通信? 为了更好的理解此问题,接下来我们通过一个简单的栗子说明. 实现一个视频播放器 假设有一个这样的需求,需要我们去实现一个简 ...
- React中组件通信的几种方式
首次发表在个人博客 需要组件之进行通信的几种情况 父组件向子组件通信 子组件向父组件通信 跨级组件通信 没有嵌套关系组件之间的通信 1. 父组件向子组件通信 React数据流动是单向的,父组件向子组件 ...
- (React入门)组件通信
1.父组件向子组件通信 props 父组件直接通过props向子组件传递需要的信息 import React, { Component } from 'react' //子组件 class Child ...
- react父子组件通信
欢迎关注微信公众号:[ 全栈攻略 ] 在 React 中,数据是自顶而下单向流动的,即从父组件到子组件. 所以就存在父子组件之间的通信的必要性了. 父组件.jsx import React from ...
- React兄弟组件通信
1.在父组件定义好回调函数接收组件A传过来的值 // 引入组件 import SonA from "./components/SonA" import SonB from &quo ...
- react父子组件通信案例
父组件:App组件 子组件:Search组件.List组件 案例需求:文本框中输入关键词,点击搜索按钮后,下方列表展示出搜索结果 实现思路: 子组件Search组件向父组件App传递状态(状态包括:是 ...
- React兄弟组件之间通信
兄弟组件之间通信 React是只有单项数据流动模式,也就是只能父组件的数据传递给子组件,而没有办法将子组件的数据传递给父组件.那么如果想要两个子兄弟组件通信该怎么办呢? 答案是可以通过子组件向父组件推 ...
- React组件通信--props
React组件通信 1.props接收数据 //index.js import App from "./App";ReactDOM.render(<App name='传递数 ...
- [react] react兄弟组件如何通信?
[react] react兄弟组件如何通信? 状态提升,通过父组件的state和方法传递到两个子组件 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 ...
最新文章
- 简单ThreadPool实现
- Excel表格快速将公式运用到一整列
- 【风控场景】互利网上数字金融典型场景: 网络借贷
- php无限极分类设计,递归方式已经淘汰了
- HDFS读写文件实例与解析
- 排列与组合的Java递归实现 (参考)
- 嵌入式linux 零基础-实践起步 --- 003 --- 交叉编译中环境变量PATH的设定
- axure,购物车数量递增或递减
- 许三多修路带给我们成功的启示
- 急速了解vue生命周期
- Atitit 命令行执行sql 跨语言 目录 1.1. 无需输入密码,那就不要-p参数即可	1 1.2. 4.使用mysql命令执行	1 1.3. 5.mysql命令执行sql,并将查询结果保存到
- 直播中不可缺少的一环-rtmp直播推流
- nmap 端口扫描基本使用方法
- VIM编辑器配置文件修改
- 英特尔oneAPI—开拓
- 【3153万】巴菲特午餐再创天价!细数曾与股神共进午餐的中国大佬丨湾区人工智能...
- 网易历届笔试面试题整理大全
- delphi 获取打印机默认纸张_Delphi中如何控制打印方向,纸张大小等 | 学步园
- python学法用法 自动刷分_使用python对微信小游戏跳一跳刷分
- nginx报错找不到指定路径
热门文章
- tt协议号服务器,TTIot: TTIoT云端物联网Iot组件;面向JAVA;netty;mqtt;异步推送;以事件为驱动;为设备提供安全可靠的连接通信能力;...
- java get null_java 获取对象中为null的字段实例代码
- STM32-串口接收、发送数据实验-程序代码分析
- (kruskal算法复习+模板)Eddy's picture
- 流放之路材质过滤怎么设置_松下除湿机怎么样 松下除湿机款式有哪些型号【详解】...
- sap 一代增强_在SAP故乡,感受“边缘智能”之变
- html输入密码跳转页面_【小乔锦囊】角色/仓库密码无法清除,怎么办?
- android点击运行后无法显示设备,Android仿真器除了黑屏外什么都不显示,adb设备显示“设备离线”...
- linux iso的引导文件,Linux_从硬盘启动Desktop ISO所需的引导文件,一、仅从硬盘启动Destdop ISO 并 - phpStudy...
- red flag linux指定域名,Red Flag Server 4.1 系统管理手册(适用桌面linux4.1) 6