React事件绑定的几种方法分享

本文主要给大家介绍了关于react学习之事件绑定的几种方法对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,希望能帮助大家更深掌握react事件绑定的方法。

React事件绑定

由于类的方法默认不会绑定this,因此在调用的时候如果忘记绑定,this的值将会是undefined。

通常如果不是直接调用,应该为方法绑定this。绑定方式有以下几种:

1. 在构造函数中使用bind绑定this

class Button extends React.Component {constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } handleClick(){ console.log('this is:', this); } render() { return (   ); }}

登录后复制

2. 在调用的时候使用bind绑定this

class Button extends React.Component { handleClick(){ console.log('this is:', this); } render() { return (   ); }}

登录后复制

3. 在调用的时候使用箭头函数绑定this

class Button extends React.Component { handleClick(){ console.log('this is:', this); } render() { return (   ); }}

登录后复制

4. 使用属性初始化器语法绑定this(实验性)

class Button extends React.Component { handleClick=()=>{ console.log('this is:', this); } render() { return (   ); }}

登录后复制

比较

方式2和方式3都是在调用的时候再绑定this。

优点:写法比较简单,当组件中没有state的时候就不需要添加类构造函数来绑定this

缺点:每一次调用的时候都会生成一个新的方法实例,因此对性能有影响,并且当这个函数作为属性值传入低阶组件的时候,这些组件可能会进行额外的重新渲染,因为每一次都是新的方法实例作为的新的属性传递。

方式1在类构造函数中绑定this,调用的时候不需要再绑定

优点:只会生成一个方法实例,并且绑定一次之后如果多次用到这个方法也不需要再绑定。

缺点:即使不用到state,也需要添加类构造函数来绑定this,代码量多一点。。。

方式4:利用属性初始化语法,将方法初始化为箭头函数,因此在创建函数的时候就绑定了this。

优点:创建方法就绑定this,不需要在类构造函数中绑定,调用的时候不需要再作绑定。结合了方式1、方式2、方式3的优点

缺点:目前仍然是实验性语法,需要用babel转译

相关推荐:

jQuery事件绑定功能基础讲解

详解jQuery实现基本的事件绑定功能

详解ES6中javascript实现函数绑定及类的事件绑定功能

以上就是React事件绑定的几种方法分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2787803.html

(0)
上一篇 2025年3月8日 18:17:11
下一篇 2025年3月8日 18:17:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 三种JavaScript定义函数方法

    本文主要和大家介绍javascript定义函数的三种实现方法的相关资料,希望通过本文大家能够掌握三种定义函数的方法,需要的朋友可以参考下,希望能帮助到大家。 JavaScript定义函数的三种实现方法 【1】正常方法 function pr…

    编程技术 2025年3月8日
    200
  • ES6中Object.assign()方法

    本文主要和大家分享,object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ),下面这篇文章主要给大家介绍了关于es6中新增的object.assign()方法的相关资料,…

    编程技术 2025年3月8日
    200
  • vue-router实现权限控制方法

    本文主要和大家介绍vue-router 权限控制的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 最近搭建了公司的后台管理系统, 而且系统还比较庞大, 要实现以下几点: 菜单权限, …

    编程技术 2025年3月8日
    200
  • react router4.0以上的路由使用方法

    本文主要和大家介绍react router 4.0以上的路由应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 在4.0以下的react router中,嵌套的路由可以放在一个route…

    编程技术 2025年3月8日
    200
  • JavaScript求最大公共子串的方法详解

    本文主要和大家介绍javascript实现求最大公共子串的方法,涉及javascript针对字符串的遍历、匹配、运算等相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 求最大公共子串,常见的做法是使用矩阵。假设有字符串:abcdefg…

    编程技术 2025年3月8日
    200
  • 限时抢购倒计时功能实现方法

    本文主要为大家带来一篇限时抢购-倒计时的完整实例(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 如下所示: nbsp;HTML>  团购——限时抢 还剩  function …

    2025年3月8日
    200
  • 使用React进行组件库开发的实例

    最近针对日常业务需求使用react封装了一套[组件库], 大概记录下整个开发过程中的心得。由于篇幅原因,在这里只对开发过程中比较纠结的选型和打包等进行讨论,后续再对具体组件的封装进行讨论。本文主要和大家介绍使用react进行组件库开发实例,…

    2025年3月8日
    200
  • react router 4.0以上的路由如何应用

    本文主要和大家介绍react router 4.0以上的路由应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 在4.0以下的react router中,嵌套的路由可以放在一个route…

    编程技术 2025年3月8日
    200
  • JS路由跳转的简单方法

    js路由跳转功能有很多方法可以实现,本文主要和大家分享一个简单的js路由跳转功能,非常不错,需要的朋友参考下吧。希望能帮助到大家。 下面的连接中有复杂的路由跳转 Title CHINACHINA1CHINA2CHINA311111 var …

    编程技术 2025年3月8日
    200
  • react前后端同构渲染实例分享

    前后端同构渲染:当客户端请求一个包含react组件页面的时候,服务端首先响应输出这个页面,客户端和服务端有了第一次交互。然后,如果加载组件的过程需要向服务端发出ajax请求等,客户端和服务端又进行了一次交互,这样,耗时相对较长。前后端同构渲…

    2025年3月8日
    200

发表回复

登录后才能评论