mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Implements support for array and object de-structuring in variable declarations and assignment expressions. Note that the code currently makes the overly optimistic assumption that the RHS is an array or object that can be safely indexed into. The correct representation would instead treat the RHS as possibly iterable, but we need to consider the appropriate representation. I think it's worth landing a first optimistic pass and we can iterate forward, this helps make it more clear what the ideal representation would have to be and should make a bunch of examples work. It also allows us to experiment with representations of, and handling for, scope dependencies that involve computed property access.
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