React.js 实战之 事件解决

作者 : 开心源码 本文共779个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共200人阅读

0 联络我


1.Java开发技术交流Q群

2.完整博客链接

3.个人知乎

4.gayhub

React 元素的事件解决和 DOM元素的很类似。但是有一点语法上的不同:

React事件绑定属性的命名采用驼峰式写法,而不是小写。
假如采用 JSX 的语法你需要传入一个函数作为事件解决函数,而不是一个字符串(DOM元素的写法)
例如,传统的 HTML:

React 中稍稍有点不同

在 React 中另一个不同是你不能使用返回 false 的方式阻止默认行为。你必需明确的使用 preventDefault。例如,传统的 HTML 中阻止链接默认打开一个新页面,你可以这样写:


在 React,应该这样来写

在这里,e 是一个合成事件。React 根据 W3C spec 来定义这些合成事件,所以你不需要担心跨浏览器的兼容性问题。查看 SyntheticEvent 参考指南来理解更多。

使用 React 的时候通常你不需要使用 addEventListener 为一个已创立的 DOM 元素增加监听器。你仅仅需要在这个元素初始渲染的时候提供一个监听器。

  • 当使用 ES6 class 语法来定义一个组件的时候,事件解决器会成为类的一个方法.
    例如,下面的 Toggle 组件渲染一个让客户切换开关状态的按钮:

必需谨慎对待 JSX 回调函数中的 this,类的方法默认是不会绑定this 的.
假如你不记得绑定 this.handleClick 并把它传入 onClick, 当你调用这个函数的时候 this 的值会是 undefined.

这并不是 React 的特殊行为;它是函数如何在 JavaScript 中运行的一部分。通常情况下,假如你没有在方法后面增加 () ,例如 onClick={this.handleClick},你应该为这个方法绑定 this

假如使用 bind 让你很烦,这里有两种方式可以处理。假如你正在使用试验性的属性初始化器语法,你可以使用属性初始化器来正确的绑定回调函数:

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » React.js 实战之 事件解决

发表回复