【学】React的学习之旅3 - 添加事件(onClick)
- button除了用
<input type="button">之外,还可以直接用<button></button>来创建,而2个标签的中间的内容就相当于value,甚至中间可以放图片 - 当给每个元素加入事件时,可以用
onClick={this.fn}的方式,注意onClick的大小写,驼峰式的。而对应的fn函数,写在该class中,以属性的方式,当点击后就调用实例身上的fn属性,其实就是调用了函数,函数中同样可以传入事件对象 - 为了找到组件中的某个元素,可以在该元素定义
ref属性,值为该元素的名称索引,在事件函数中可以通过this.refs[索引名称]找到,而refs本身也是组件实例的一个属性,注意是复数refs,而在元素里的ref是单数 - 即使这样还不够,因为这个元素不是真是的DOM,而是虚拟DOM,要通过
ReactDOM.findDOMNode()方法来进行操作
例子:创建按钮,显示隐藏旁边的文字
var TextClick = React.createClass({
clickHandler:function(ev){ //组件中定义一个属性,作为某个事件函数,同样可以传入事件对象
var oTip = React.findDOMNode(this.refs.tip); //refs是组件实例的一个属性,tip就是组件中某个元素定义的ref名称索引
if(oTip.style.display === 'none'){
oTip.style.display = 'inline';
}else{
oTip.style.display = 'none';
}
},
render:function(){
return (
<div>
<button onClick={this.clickHandler}>测试按钮</button><span ref="tip">显示隐藏</span>
</div>
);
}
});
ReactDOM.render(
<TextClick />,
oWrap
);
【学】React的学习之旅3 - 添加事件(onClick)的更多相关文章
- 【学】React的学习之旅4-添加事件(onChange)
实现联动绑定,在文本框中输入内容的同时,后面的span里内容跟着一起变化: onChange(),一旦触发一次变动,就执行某个函数: 既然已经在getInitialState属性里申明了一个变量inp ...
- 【学】React的学习之旅1
React的学习之旅1 单标签要有斜杠代表结束 用React.createClass()方法时,赋值后的组件名称首字母一定要大写 一定要先定义组件,再用ReactDOM.render调用 组件里ren ...
- React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路
React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路 这几天在忙着把自己做的项目中的类组件转化为功能相同的函数组件,首先先贴一份该组件类组件的关 ...
- 【学】React的学习之旅7-官方例子总结
如果在标签里有注释,除了使用/**/之外,如果写在子标签中,外面还需要用{}包起来,指明这段是javascript代码,否则这段注释会直接显示在页面上,例如 render:function (){ r ...
- 【学】React的学习之旅5-组件的嵌套
复习 [array].map(function(item,index){})方法,传参里的函数需要有return值,一般用map()后都要用一个变量接一下,这个返回的还是一个数组,只是把每次遍历到的数 ...
- 【学】React的学习之旅2 - React Component的生命周期
分成三个状态: Mounted Update Unmounted Mounted:当我们看到组件在浏览器中从无到有的效果的时候,mounted已经结束了,这个组件已经被mounted了 有这个阶段有2 ...
- 【学】React的学习之旅6-组件的嵌套2
<input type=text placeholder='aaa'>, placeholder属性是定义文本框在没有输入值之前显示的一段灰色提示 ()=>{}箭头函数在ECMA6里 ...
- 【原】React中,map出来的元素添加事件无法使用
在使用react中,经常用到react的map函数,用法和jquery里中的map一样,但是,如果你在每个map出来的元素中添加,你会发觉添加的事件无法关联, 比如,我们很多的评论,我需要在每个评论下 ...
- jQuery学习之旅 Item8 DOM事件操作
1.jquery页面载入事件 1.传统加载事件 <body onload="函数名()"> 页面全部html和css代码加载完成之后再调用指定的onload函数 win ...
随机推荐
- Azure自动化实例: 复制blog用于备份
在Azure 自动化:使用PowerShell Credential连接到Azure, 之后, 我在项目中遇到了实现blog备份的任务, 现将其作为一个实例写下来: 1. 首先,创建自动化帐户, 在资 ...
- 手动刷新magento的索引管理方法
当我们网站商品很多的时候,比如有几千件,我们刷新Magento的索引管理(Index Management)经常会失败.那么后台刷新不了,我们还可以通过命令行来刷新. 使用命令行来刷新索引管理会极大降 ...
- The Swift Programming Language 中文翻译版(个人翻新随时跟新)
The Swift Programming Language --lkvt 本人在2014年6月3日(北京时间)凌晨起来通过网络观看2014年WWDC 苹果公司的发布会有iOS8以及OS X 10.1 ...
- Linux系统上通知网关更新arp
经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在. 因此 ...
- iOS不使用JSONKit做Dic到JsonString的转换
NSDictionary to jsonString [self DataTOjsonString:dic] -(NSString*)DicToJsonString:(id)object { NSSt ...
- FTP弱口令猜解【python脚本】
ftp弱口令猜解 python脚本: #! /usr/bin/env python # _*_ coding:utf-8 _*_ import ftplib,time username_list=[' ...
- 浅谈P NP NPC
P问题:多项式时间内可以找到解的问题,这个解可以在多项式时间内验证. NP问题:有多项式时间内可以验证的解的问题,而并不能保证可以在多项式时间内找到这个解. 比如汉密尔顿回路,如果找到,在多项式时间内 ...
- 采集数据和memchche的存储使用,分页展示
<?phpheader('content-type:text/html;charset=utf-8');//实例化memcache$mem=new Memcache();//链接$mem-> ...
- Python 类与作用域——一些测试
/* 一 */ >>> class T (): a = 0 b = a >>> T.b 0 >>> del T /* 二 */ >>& ...
- OpenGL角轴
概述 轴旋转 角轴 概述 OpenGL旋转矩阵 旋转角度直接影响OpenGL GL_MODELVIEW矩阵的前三列,准确地说是向左.向上与向前三轴元素.例如,如果一沿X轴的单位向量(1,0,0)与任一 ...