mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Improves DCE, using fixpoint iteration to detect values that are updated across loops but otherwise never read. There is still some further optimization we can do (the dce-loop case could optimize out `y`), but this seems like plenty for now. Actually, we probably have to add some return statements to our fixtures before landing this, because otherwise most of the code goes away.
test262
@ 83a46bfe0e
React Forget
React Forget is an experimental Babel plugin to automatically memoize React Hooks and Components.
Development
# tsc --watch
$ yarn dev
# in another terminal window
$ yarn test --watch
Notes
An overview of the implementation can be found in the Architecture Overview.
This transform
- needs plugin-syntax-jsx as a dependency to inherit the syntax from.
- should be run before plugin-transform-react-jsx
- assume the enforcement of rules of hooks, i.e.
- only call hooks from React functions
- only call hooks at the top level
- https://www.npmjs.com/package/eslint-plugin-react-hooks
Scaffolding
- https://github.com/facebook/flow/tree/master/packages/babel-plugin-transform-flow-enums
- https://github.com/babel/babel/blob/main/packages/babel-plugin-transform-react-jsx/src/create-plugin.ts
Reference