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 相关文章推荐
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
May 20 Javascript
jQuery插件jPaginate实现无刷新分页
May 04 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
Kotlin学习第一步 kotlin语法特性
May 25 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
Jun 23 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
Oct 09 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
如何给phpadmin一个保护
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
实用函数7
2007/11/08 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
常用一些Javascript判断函数
2012/08/14 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
浅谈MySQL中的触发器
2015/05/05 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
PyQt实现计数器的方法示例
2021/01/18 Python
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
公司大门门卫岗位职责
2014/06/11 职场文书
党纪处分决定书
2015/06/24 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android