Skip to content

Files

Latest commit

0d1b4ea · Jun 4, 2020

History

History
15 lines (8 loc) · 913 Bytes

re-12.md

File metadata and controls

15 lines (8 loc) · 913 Bytes

概述下 React 中的事件处理逻辑

?> 英:Describe how events are handled in React.

答:

为了解决跨浏览器兼容性问题,React 会将浏览器原生事件(Browser Native Event)封装为合成事件(SyntheticEvent)传入设置的事件处理器中。这里的合成事件提供了与原生事件相同的接口,不过它们屏蔽了底层浏览器的细节差异,保证了行为的一致性。

另外有意思的是,React 并没有直接将事件附着到子元素上,而是以单一事件监听器的方式将所有的事件发送到顶层进行处理。这样 React 在更新 DOM 的时候就不需要考虑如何去处理附着在 DOM 上的事件监听器,最终达到优化性能的目的。

参考资料:

题目来源

翻译文章