
获得徽章 0
- 看到一些文章对于捕获和冒泡,以及 stopPropagation 有一些错误的解释,纠正一下:
1. 事件传播有3个阶段,按照先后顺序是捕获 -> target -> 冒泡
2. 如果target上同时有捕获和冒泡事件,执行顺序与注册顺序一致,谁先注册谁优先级高。
3. stopPropagation 确实是可以停止捕获或冒泡事件的进一步传播,这其实有两点意思。第一是指在捕获或者冒泡阶段阻止进一步传播的前提是自己还是要触发的,阻止的是下一个传播对象的触发。第二,如果是target阶段的话,同时注册有冒泡和捕获,比如先注册的冒泡再是捕获,然后在冒泡中stopPropagation,其实冒泡的触发了,捕获的回调还是会触发,然后才被阻止的。
测试:codesandbox.io
展开34 - 有朋友提出,React既然要求“渲染阶段”不要有副作用,那么Suspense怎么又是在render函数中做调用AJAX的操作呢?
其实,React现在已经不可能要求“不要有副作用”了,能够要求的只是在“渲染阶段”只能做“幂等”(Indempotent)操作。
相关详细解答:zhuanlan.zhihu.com
展开评论13