我已经尝试搜索答案,但在互联网上找不到解决方案。
这个问题看起来很有趣。请问是否有人能够解释一下是否存在真正的区别。
我已经尝试搜索答案,但在互联网上找不到解决方案。
这个问题看起来很有趣。请问是否有人能够解释一下是否存在真正的区别。
React事件也称为SyntheticEvent
。
它是浏览器原生事件的跨浏览器包装器。 它具有与浏览器原生事件相同的接口,包括stopPropagation()和preventDefault(),除了事件在所有浏览器中均以相同方式工作
SyntheticEvent
包含nativeEvent
,可用于访问特定于浏览器的事件和事件处理机制。
DOM事件:
就是映射到应用程序运行的浏览器中的nativeEvent
。
例如:
onchange(React具有onChange)
onclick(React具有onClick)等
编辑:
例如使用onclick
< IE9
element.attachEvent('onclick', function() { /* do stuff here*/ });
其他浏览器(包括IE 9及以上版本):
element.addEventListener('click', function() { /* do stuff here*/ }, false);
如我们所见,我们需要一个脚本来处理跨浏览器兼容性。一种非常受欢迎的库,jQuery,已经做了许多这样的事情,以解决跨浏览器兼容性问题。
如果您查看 jQuery 文档或 JavaScript (例如官方文档) 中不同浏览器的不同 API 的兼容性,您将轻松了解事件在所有浏览器中的工作方式相同指的是什么。
我从此处
摘取了上述片段。
boolean bubbles
boolean cancelable
DOMEventTarget currentTarget
boolean defaultPrevented
number eventPhase
boolean isTrusted
DOMEvent nativeEvent
void preventDefault()
boolean isDefaultPrevented()
void stopPropagation()
boolean isPropagationStopped()
DOMEventTarget target
number timeStamp
string type
请查看React事件文档
考虑以下示例:
DOMEvent ReactEvent(Synthetic event)
onclick onClick
onchange onChange