1,React中元素事件的绑定

在传统的Html中对元素进行绑定写法如下:

<button onclick="activateLasers()">Activate Lasers
</button>

React中写法如下:

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

相比我们可以看到 在元素上面事件名称传统的为全部小写,事件值为带有小括号的函数名。而React中事件名称为小驼峰命名。值用大括号括起来。

2,this对象的传递

在React组件的方法中我们经常需要用到组件的props属性传入的值以及需要更新界面的state引用对象this对象。

写法一:

import React from 'react';
import ReactDOM from 'react-dom';class Toggle extends React.Component{constructor(props){super(props);this.state={flag:true}this.click = this.click.bind(this);}
//  click=()=>{click(){ //此种写法内部不能引用到this对象,需要用上面的箭头函数进行才可以。this.setState({"flag":!this.state.flag});}render(){return  <button onClick={this.click}>{this.state.flag?"NO":"OFF"}</button>;}
}ReactDOM.render(<Toggle />,document.getElementById('root'));

在使用普通函数中需要使用this,则需要在构造函数中对其进行绑定this;this.click = this.click.bind(this);

写法二:

在元素绑定时,传入匿名函数。省略了构造函数中的绑定this语句。

import React from 'react';
import ReactDOM from 'react-dom';class Toggle extends React.Component{constructor(props){super(props);this.state={flag:true}}
//  click=()=>{click(){ //此种写法内部不能引用到this对象,需要用上面的箭头函数进行才可以。this.setState({"flag":!this.state.flag});}render(){return  <button onClick={(e)=>{this.click(e)}}>{this.state.flag?"NO":"OFF"}</button>;}
}ReactDOM.render(<Toggle />,document.getElementById('root'));

第三种(推荐)

使用ES6箭头函数定义被绑定的调用执行函数

import React from 'react';
import ReactDOM from 'react-dom';class Toggle extends React.Component{constructor(props){super(props);this.state={flag:true}}click=()=>{this.setState({"flag":!this.state.flag});}render(){return  <button onClick={this.click}>{this.state.flag?"NO":"OFF"}</button>;}
}ReactDOM.render(<Toggle />,document.getElementById('root'));

3,向被触发函数传递参数

import React from 'react';
import ReactDOM from 'react-dom';class Toggle extends React.Component{constructor(props){super(props);this.state={flag:true}}click=(a,b,c)=>{console.log(a);console.log(b);console.log(c);this.setState({"flag":!this.state.flag});}render(){return  <button onClick={this.click.bind(this,"999","888")}>{this.state.flag?"NO":"OFF"}</button>;}
}ReactDOM.render(<Toggle />,document.getElementById('root'));

根据打印我们可以看到,传参会根据传递的顺序依次传入,并且再函数参数中最后可以多获取一个传入参数事件e。

React 第六章 事件的绑定相关推荐

  1. [转]《精通Javascript》笔记:第六章(事件)

    <精通Javascript>笔记:第六章(事件) Published by sansan at 11:41 am under 前端|Front-End 事件模型:捕获和冒泡 通过oneve ...

  2. python归一化 增大差异_简学Python第六章__class面向对象编程与异常处理

    Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性pr ...

  3. Vulkan规范笔记(一) 第一章至第六章

    目录 前言 第一章 第三章 Fundamentals 主机和设备环境 执行模式 Queue Operation object model object lifetime External Object ...

  4. nrf52832 学习笔记(六)配对和绑定

    nrf52832 学习笔记(六)配对和绑定 配对绑定推荐博客低功耗蓝牙配对绑定解读和实践 蓝牙在配对之前都是明文通信的,也就是说主从机之间传输的数据包可以被第三方抓取分析逆向,而且如果没有配对,谁都可 ...

  5. 计算机网络复习资料(前六章谢希仁版)

    计算机网络复习 作者:why will kill it 第一章 概述 internet和Internet的区别 以小写字母"i"开始的internet(互联网)是一个通用名词,它泛 ...

  6. 《SysML精粹》学习记录--第六章

    <SysML精粹>学习记录 第六章:活动图 活动图简介 活动图外框 活动图的关键元素   动作   对象节点   边   动作详述   控制节点 活动分区 小结 第六章:活动图 活动图简介 ...

  7. jQuery系列 第六章 jQuery框架事件处理

    第六章 jQuery框架事件处理 JavaScript以事件驱动来实现页面的交互,其核心是以消息为基础,以事件来驱动.虽然利用传统的JavaScript事件处理方式也能够完成页面交互,但jQuery框 ...

  8. 第六章 PL/SQL与Oracle间交互

    第六章 PL/SQL与Oracle间交互 一.PL/SQL支持的SQL一览 PL/SQL扩展了SQL,变得更加强大和易用.我们可以用PL/SQL灵活安全地操作Oracle数据,因为它支持所有的SQL数 ...

  9. Windows Shell编程-第十六章.命名空间扩展

    第十六章 命名空间扩展 探测器使用层次结构表述形成系统的许多对象--文件,文件夹,打印机,网络对象等等.这些对象组合定义了一个命名空间,这是一个封闭的符号或名字集合,其中任何给定的符号或名字都能成功地 ...

最新文章

  1. php备份漏洞源码,原创|从 PHP Git 源码的查找导致 PHP 安全漏洞的代码变更
  2. [JQuery] jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
  3. 简述ajax的优缺点
  4. 《全球互联网金融商业模式:格局与发展》——第3章,第3节互联网保险公司...
  5. 3.5链表----链表中元素的删除(只删除一个元素情况)
  6. android圆角视图_Android图库视图示例教程
  7. java set collection_Java的Collection接口和Set接口?
  8. iOS常用第三方类库 Xcode插件
  9. 如何让4年前的电脑装win10开机跑进15秒
  10. linux 使用apidoc 生成Restful web Api文档
  11. java 怎么给其他进程发送消息_Java程序与其它进程的数据通信
  12. IIS——屏蔽返回的Header中的 IIS版本信息
  13. java中的关键字有哪些_java关键字有哪些?java关键字大全
  14. android 壁纸存储位置,手机图片去了哪?教你理清照片存放路径(全文)
  15. 使用nginx反向代理发起跨域请求
  16. Android长度单位详解
  17. RK3399 Android7.1修改系统默认壁纸
  18. 快服务助手卡片测试时为什么不跳转线上快应用?
  19. 家用3d室内装修设计软件一览
  20. pyqt5 桌面摸鱼工具 一行小鱼

热门文章

  1. Apache Kafka 2.7.0 稳定版发布
  2. Ajax(二)-XMLHttpRequest(核心)对象的属性和方法
  3. Java访问修饰符——用于控制可见性
  4. jmeter安装包双击没反应_Jmeter5.0源码在eclipse运行的正确打开方式
  5. resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
  6. Ansible结合跳板机控制远程服务器
  7. [转]计算机视觉之跟踪算法——相关滤波器Correlation Filter
  8. 25马5跑道,求最快的五匹马的需要比赛的次数
  9. android6.0权限管理工具EasyPermissionUtil
  10. 【Hadoop】HIVE 数据表 使用