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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
$.extend 的一个小问题
Jun 18 Javascript
AngularJS教程之环境设置
Aug 16 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
bootstrap使用validate实现简单校验功能
Dec 02 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
Jan 24 Javascript
JS document文档的简单操作完整示例
Jan 13 Javascript
Vue跨域请求问题解决方案过程解析
Aug 07 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 Javascript
js实现复制粘贴的两种方法
Dec 04 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
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Python中print函数简单使用总结
2019/08/05 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
高分子材料与工程专业推荐信
2013/12/01 职场文书
趣味游戏活动方案
2014/02/07 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
师范生自我鉴定
2014/03/20 职场文书
少年犯观后感
2015/06/11 职场文书
行政复议决定书
2015/06/24 职场文书
一百条裙子读书笔记
2015/07/01 职场文书