You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR involves removing ReactReconciler calls and still maintain event queue orders for React*Component. From my analysis these are the spots that need to be addressed:
ReactCompositeComponent
mountComponent
Mount queue: componentDidMount (post-recursion)
hoist ReactReconciler calls
Add postMount interface to handle post-recursion
receiveComponent
Mount queue: componentDidUpdate (post-recursion)
hoist ReactReconciler calls
Add postUpdate interface to handle post-recursion
unmountComponent
hoist ReactReconciler calls
ReactDOMComponent
mountComponent
Mount queue: trapBubbledEventsLocal (pre-recursion), putListener (pre-recursion), focusDOMComponent (post-recursion)
hoist ReactReconciler calls
Add postMount interface to handle post-recursion
receiveComponent
Mount queue: putListener (pre-recursion), postUpdateSelectWrapper (post-recursion)
hoist ReactReconciler calls
Add postUpdate interface to handle post-recursion
unmountComponent
hoist ReactReconciler calls
ReactReconciler
Also, ReactDOMComponent uses DomLazyTree objects that the reconciler would need to recognize. In order to keep ReactReconciler decoupled, there will need to be a generic interface for trees and a plugin for handling DomLazyTree specifically.
mountComponent
implement recursion
attachRefs queue (pre: must be before other queued methods)
implement generic LazyTree injection
call postMount on React*Component for implementing post-recursion event queueing
receiveComponent
implement recursion
call postUpdate on React*Component for implementing post-recursion event queueing
unmountComponent
implement recursion
call postUnmount for implementing post-recursion event removal
Testing
Fix tests that are affected by internal API changes
The text was updated successfully, but these errors were encountered:
See facebook/react@master...mridgway:reconcilerRecursion for progress.
This PR involves removing
ReactReconciler
calls and still maintain event queue orders forReact*Component
. From my analysis these are the spots that need to be addressed:ReactCompositeComponent
mountComponent
Mount queue: componentDidMount (post-recursion)
receiveComponent
Mount queue: componentDidUpdate (post-recursion)
unmountComponent
ReactDOMComponent
mountComponent
Mount queue: trapBubbledEventsLocal (pre-recursion), putListener (pre-recursion), focusDOMComponent (post-recursion)
receiveComponent
Mount queue: putListener (pre-recursion), postUpdateSelectWrapper (post-recursion)
unmountComponent
ReactReconciler
Also,
ReactDOMComponent
usesDomLazyTree
objects that the reconciler would need to recognize. In order to keepReactReconciler
decoupled, there will need to be a generic interface for trees and a plugin for handlingDomLazyTree
specifically.mountComponent
LazyTree
injectionpostMount
onReact*Component
for implementing post-recursion event queueingreceiveComponent
postUpdate
onReact*Component
for implementing post-recursion event queueingunmountComponent
postUnmount
for implementing post-recursion event removalTesting
The text was updated successfully, but these errors were encountered: