|
|
1
2
原因之一是性能。React不是将事件侦听器附加到应用程序内部使用的每个事件,而是为每个事件类型附加一个事件侦听器
这样,react就不必一直从DOM中重新创建和清除侦听器,它只需更改其内部侦听器注册表。 另一个原因是React的事件冒泡在某些情况下的工作方式与DOM不同。 Portals 特别地。 举个例子:
因此,在本例中,当使用门户时,DOM结构与组件结构并不完全匹配。以下是气泡行为的不同之处:
|
|
|
2
1
React source中没有提到等待事件冒泡以便调度的原因
很明显,在React-events系统中捕获冒泡事件之前,等待冒泡事件完成冒泡的决定是错误的 只是代码组织的问题
阅读反应
ReactBrowserEventEmitter
区分冒泡事件和不冒泡事件(并保持代码可读性)的最简单方法似乎是在冒泡阶段捕获冒泡事件,而在捕获阶段捕获不冒泡事件。 因此,总的来说,事件的实际工作方式(与我在这个问题上的初始命题进行类比)如下: 对于气泡事件:
|
|
|
3
0
React通过在文档上添加所有React事件处理程序来执行顶级委托。所以在捕获和气泡阶段会发生以下情况。 捕获阶段:
|
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
vatsal chauhan · 即使在字体预加载时,文本加载也很慢 1 年前 |
|
|
noblerare · Vite错误-未定义导出(SSR) 1 年前 |