react 事件绑定 es5/es6
// vscode shift + ctrl + v 预览
es 5 写法
无参函数的绑定
- first methods
- 定义函数:
handleClick(e) { // e - 事件对象
e.preventDefault();
// doSomething ...
}
- constructor 中绑定函数的执行上下文
this.handleClick = this.handleClick.bind(this);
- jsx 中的调用
<button onClick={this.hanleClick} />
- second methods
- 定义函数
// 同上
- jsx 中的调用
<button onClick={this.hanleClick.bind(this)} />
有参数的绑定
- only one
- 定义函数
handleClick(param1, param2, e) {
e.preventDefault();
// do something ...
}
注意此时无论多少个参数, e 一定放在最后
- jsx 中调用
<button onClick={this.hanleClick.bind(this, 'x', 'xx')} />
es 6 写法
无参数的绑定
- only one
- 定义函数:
handleClick = (e) => {
e.preventDefault();
// do something ...
}
- jsx 中调用
<button onClick={this.hanleClick} />
比起 es 5 中的无参数函数的绑定调用, es 6 不需要使用 bind 函数;
有参数函数的绑定
- first methods
- 定义函数:
handleClick = (param1, e) => {
e.preventDefault();
// do something ...
}
- jsx 中调用
<button onClick={this.hanleClick.bind(this, 'x')} />
有参数时,在绑定时依然要使用 bind;
并且参数一定要传,不然仍然存在 this 指向错误问题; - second methods
- 定义函数:
handleClick = (param1, e) => {
// do something ...
}
- jsx 中调用
<button onClick={() => this.handleClick('c')} />
// 如果需要对 event 对象进行处理的话,需要写成下面的格式
<button onClick={(e) => this.handleClick('c', e)} />
react 事件绑定 es5/es6的更多相关文章
- 【转】React Native中ES5 ES6写法对照
很多React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教程和例子都是 ...
- React事件绑定的几种方式对比
React事件绑定 由于类的方法默认不会绑定this,因此在调用的时候如果忘记绑定,this的值将会是undefined.通常如果不是直接调用,应该为方法绑定this.绑定方式有以下几种: 1. 在构 ...
- React Native 的ES5 ES6写法对照表
模块 引用 在ES5里,如果使用CommonJS标准,引入React包基本通过require进行,代码类似这样: //ES5 var React = require("react" ...
- React/React Native 的ES5 ES6写法对照表-b
很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教 ...
- react 入坑笔记(四) - React 事件绑定和传参
React 事件处理 建议:在了解 js 的 this 取值后食用更佳. 一.react 与 Html 中用法的异同和注意点 html 中的绑定事件的写法: <button onclick=&q ...
- react事件绑定的三种常见方式以及解决Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state问题思路
在 React 组件中,每个方法的上下文都会指向该组件的实例,即自动绑定 this 为当前组件. 而且 React 还会对这种引用进行缓存,以达到 CPU 和内存的优化.在使用 ES6 classes ...
- React事件绑定的方式
一.是什么 在react应用中,事件名都是用小驼峰格式进行书写,例如onclick要改写成onClick 最简单的事件绑定如下: class ShowAlert extends React.Compo ...
- React/React Native的 ES5 ES6 写法对照
ES5 ES6 模块 var React = require("react-native); var { Image, Text, View } = React; import Re ...
- React事件绑定与解绑
React中事件分类 React中事件绑定分为两种: 1.直接添加在React元素上的事件,这是React在基于Virtual DOM的基础上实现的符合w3c规范的合成事件(SyntheticEven ...
随机推荐
- 痞子衡嵌入式:第一本Git命令教程(0)- 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家讲的是Git命令汇编,共12篇文章,循序渐进地介绍Git操作的完整过程. 在开始Git课程之前,需要先跟大家普及2个重要概念(四度空间.四种状 ...
- 【JVM系列】一步步解析java执行内幕
对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...
- Flutter 即学即用系列博客——03 在旧有项目引入 Flutter
前言 其实如果打算在实际项目中引入 Flutter,完全将旧有项目改造成纯 Flutter 项目的可能性比较小,更多的是在旧有项目引入 Flutter. 因此本篇我们就说一说如何在旧有项目引入 Flu ...
- 《C#并发编程经典实例》学习笔记—2.6 任务完成时的处理
问题 正在 await 一批任务,希望在每个任务完成时对它做一些处理.另外,希望在任务一完成就立即进行处理,而不需要等待其他任务. 问题的重点在于希望任务完成之后立即进行处理,而不去等待其他任务. 这 ...
- Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用
Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用 目录 概要 知识点 完整示例图 代码与资源文件 流程步骤 概要 基于 MVP 最小可行性产品设计理念,我们先完成一个可以 ...
- CVE-2017-1000405 利用脏牛漏洞Linux提权复现
当前路径: /var/www 磁盘列表: / 系统信息: Linux zico 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 ...
- 请收好这份NLP热门词汇解读
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 微软研究院AI头条 编者按:在过去的一段时间,自然语言处理领域取得了许多重要的进展,Tran ...
- Android项目实战(五十二):控制EditText输入内容大小写转换
今日需求,EditText内容为一串字符串,要求将用户软键盘输入的小写字母在输入的时候自动转为大写字母,反之亦然. 效果如下: 第一次做该需求,原先想法: EditText.addTextChange ...
- Android Studio项目用Git上传至码云(OSChina)
工具: Git安装(官网下载,默认安装即可). 步骤一: 新建一个Android Studio项目: 步骤二: 申请OSChina账号.登陆并创建新项目 1. 2. 3.点击复制,下面在Android ...
- Websocket-Sharp获取客户端IP地址和端口号
//OnOpen事件 protected override void OnOpen() { string IPAddress = base.Sessions.Sessions.First().Cont ...