This is an umbrella issues for remaining fiber issues. More can be found by running the unit tests with the useFiber
flag in ReactDOMFeatureFlags
turned on
See #8830 for additional tasks beyond the scope of the initial Fiber release
Phases 1–6
Phase 1: Infrastructure
Phase 2: Smaller / Initial Tasks
Phase 3: Larger Tasks
Phase 4: Uncovered Bugs
updateQueue
instead of pendingProps
. [@acdlite].output
. #8406React.createElement('INPUT')
.Phase 5
Map
, requestAnimationFrame
requestIdleCallback
. [@sebmarkbage] #8833Phase 6: Unit tests and known bugs push
findDOMNode
bug when used in certain cases from componentWillUnmount
. [@sebmarkbage, @acdlite] #8897 throw new Error
with invariant
calls and they have sensible messages [@acdlite] #8926let
/const
), maybe fork Babel plugin to throw [@spicyj]Phase 6.1: 15.5 Release
prop-types
package name. [@acdlite]context
to componentDidUpdate
(or deprecate feature and remove test). [@bvaughn] #8631checkPropTypes
APIPhase 6.2: React Native Fiber
<Text>
) (does not block anything but we should do this)fbjs/lib/warning
one in RN. [@spicyj] (doesn't block anything OSS, internal to FB)createStrictPropTypeChecker
away and use exactShape
instead. (doesn't block OSS release)prepareNewChildrenBeforeUnmountInStack
feature flag (one week after landing sync).findNodeHandle
.$FlowFixMe
comments; good enough for now)NativeMethodsMixin
to be upgrade compatible. [@bvaughn]ReactNativeComponentTree
doesn't leak. (@sebmarkbage, @bvaughn)Phase 6.3: Flat Bundles/Rollup
if (__DEV__) { ... all of React ... } else { ... all of React }
)Phase 7: Async-Compatible (does not block release)
newProps
gets passed to construct class. Otherwise this.props
can be null
.Phase 8: Server-Side Rendering
document
and shadow DOM containers)Phase 9: Improvements (does not block release)
getPublicInstance
internal API should consistently be used before exposing any stateNodes.callbackList
[@acdlite] https://github.com/facebook/react/pull/8752Things that I hope would also be appended to this list of features/bugs:
@donnieflorence This is a list of things we need to do to get parity with the existing implementation. After we finish these we might look at adding new features.
REACT_DOM_JEST_USE_FIBER=1 npm test
to run unit tests with Fiberscripts/fiber/record-tests
to verify which tests are now passing with FiberNote: Contributing is hard right now.
It will get easier once more pieces (e.g. DOM attributes and events) are in place. There will be a long trail of issues where community can really help. But if you're feeling adventurous, you can give it a go. Check out older Fiber PRs for inspiration and pieces of information. Example Fiber "easy" PR: https://github.com/facebook/react/pull/8156.
will you support bind context like VueJS?. So there is no need bind function manually.
@ssuhat
This is a list of things we need to do to get parity with the existing implementation. After we finish these we might look at adding new features.
https://github.com/facebook/react/issues/7925#issuecomment-257168615
@ssuhat I think they explicitly decided against this a long time ago for being too "magical". Using the experimental property initializer syntax is a nice way to deal with it; you can also try a 3rd party plugin like react-autobind.
Aside from being "magical," the problem with autobinding is that there's a performance cost to binding methods, and it's wasteful to autobind the ones that don't need it.
Something akin to Inferno's linkEvent would be good though, skipping binding while allowing data to be passed through. Often I find myself with code in a loop that would benefit from this, e.g.
<ul>
{things.map(thing => (
<li key={thing.key} onClick={() => this.doSomething(thing.id)}>{thing.something}</li>
))}
</ul>
Being able to drop the binding there would be nice.
Let's create a separate issue for any further discussions.
We just moved remaining open items from 6.1-6.3 into https://github.com/facebook/react/issues/8854 and for now decided to archive this issue. We can open a new 'umbrella' issue or individual issues for items in phases 7-9 after we finish the 16.0 release.
Most helpful comment
How to Help
REACT_DOM_JEST_USE_FIBER=1 npm test
to run unit tests with Fiberscripts/fiber/record-tests
to verify which tests are now passing with FiberNote: Contributing is hard right now.
It will get easier once more pieces (e.g. DOM attributes and events) are in place. There will be a long trail of issues where community can really help. But if you're feeling adventurous, you can give it a go. Check out older Fiber PRs for inspiration and pieces of information. Example Fiber "easy" PR: https://github.com/facebook/react/pull/8156.