React学习笔记之事件处理(二)


Posted in Javascript onJuly 02, 2017

之前已经给大家介绍了React中的条件渲染(传送门),本文将给大家关于React中事件处理的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

React的事件处理和DOM的事件处理是很相似的,只是有一些语法上的区别:

  • React的事件名是驼峰的,不是小写的
  • 在JSX语法中,你传递一个fucntion作为时间处理器,而不是一个string

举个例子:

<button onClick={activateLasers}> 
 Activate Lasers
</button>

而且如果你想拿到事件对象event,这个对象是React按照w3c标准完成的,所以不用担心浏览器的兼容性,可以像如下这样:

function ActionLink() { 
 function handleClick(e) {
 e.preventDefault();
 console.log('The link was clicked.');
 }

 return (
 <a href="#" rel="external nofollow" onClick={handleClick}>
  Click me
 </a>
 );
}

如果用ES6的class写法可以像如下一样:

class Toggle extends React.Component { 
 constructor(props) {
 super(props);
 this.state = {isToggleOn: true};

 // 这个`this`绑定是有必要的,用来让this可以在回调中被正确指向React组件的实例对象
 this.handleClick = this.handleClick.bind(this);
 }

 handleClick() {
 this.setState(prevState => ({
  isToggleOn: !prevState.isToggleOn
 }));
 }

 render() {
 return (
  <button onClick={this.handleClick}>
  {this.state.isToggleOn ? 'ON' : 'OFF'}
  </button>
 );
 }
}

ReactDOM.render( 
 <Toggle />,
 document.getElementById('root')
);

还有两种方式可以避免写显式bind(this) ,但是都不推荐这么用啊~所以就不再赘述~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript window.setTimeout() 的详细用法
Nov 04 Javascript
javascript textContent与innerText的异同分析
Oct 22 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
javascript对下拉列表框(select)的操作实例讲解
Nov 29 Javascript
Ajax跨域实现代码(后台jsp)
Jan 21 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
Dec 05 Javascript
React学习笔记之条件渲染(一)
Jul 02 #Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 #Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
Jul 02 #Javascript
关于使用axios的一些心得技巧分享
Jul 02 #Javascript
React服务端渲染(总结)
Jul 01 #Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 #Javascript
详解node-ccap模块生成captcha验证码
Jul 01 #Javascript
You might like
一段php加密解密的代码
2007/07/16 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
幼儿园中班教学反思
2014/02/10 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
C++程序员求职信范文
2014/04/14 职场文书
2014最新离职证明范本
2014/09/12 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python