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 相关文章推荐
JQuery表格内容过滤的实现方法
Jul 05 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
JS实现单行文字不间断向上滚动的方法
Jan 29 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
微信小程序链接传参并跳转新页面
Nov 29 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
Apr 13 Javascript
讲解vue-router之什么是编程式路由
May 28 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
JS实现前端动态分页码代码实例
Jun 02 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
JS实现页面内跳转的简单代码
2017/09/03 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
《逃家小兔》教学反思
2014/02/23 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
爱我中华演讲稿
2014/05/20 职场文书
私人房屋买卖协议书
2014/10/04 职场文书