react/compiler
Mike Vitousek 057de295d5 [compiler] Expect components to have hook calls or jsx directly in body
Summary: We can tighten our criteria for what is a component by requiring that a component or hook contain JSX or hook calls directly within its body, excluding nested functions . Currently, if we see them within the body anywhere -- including nested functions -- we treat it as a component if the other requirements are met. This change makes this stricter.

We also now expect components (but not necessarily hooks) to have return statements, and those returns must be potential React nodes (we can reject functions that return function or object literals, for example).

ghstack-source-id: 4507cc3955216c564bf257c0b81bfb551ae6ae55
Pull Request resolved: https://github.com/facebook/react/pull/29865
2024-06-11 14:08:21 -07:00
..
apps/playground [compiler] Remove playground postinstall script 2024-06-10 20:35:39 -04:00
crates Rust: add stub for ensure_sufficient_stack (#2943) 2024-05-07 15:41:03 -04:00
docs docs: fix typo DESIGN_GOALS.md (#29102) 2024-05-16 16:11:22 -07:00
packages [compiler] Expect components to have hook calls or jsx directly in body 2024-06-11 14:08:21 -07:00
scripts [compiler] Fix outdated comment in scripts/release 2024-06-07 12:29:50 -04:00
.eslintrc.js [compiler] Fix up prettier 2024-05-29 11:46:27 +09:00
.gitignore [.gitignore] Add bundle script 2024-04-16 14:41:13 +01:00
.gitmodules
.prettierignore [compiler] Fix up prettier 2024-05-29 11:46:27 +09:00
.prettierrc.js [compiler] Fix up prettier 2024-05-29 11:46:27 +09:00
.watchmanconfig
Cargo.lock Bump rustix from 0.37.22 to 0.37.27 in /compiler (#29173) 2024-05-20 12:02:35 +01:00
Cargo.toml Update references to Forget to React Compiler 2024-05-02 14:28:06 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE Update copyrights to reference Meta instead of Facebook 2024-04-03 08:43:36 -07:00
package.json [compiler] Remove unused scripts 2024-06-10 20:35:40 -04:00
README.md Update readme and other docs 2024-05-06 14:53:47 -07:00
rust-toolchain.toml
rustfmt.toml
yarn.lock [compiler] Fix up prettier 2024-05-29 11:46:27 +09:00

React Compiler

React Compiler is a compiler that optimizes React applications, ensuring that only the minimal parts of components and hooks will re-render when state changes. The compiler also validates that components and hooks follow the Rules of React.

More information about the design and architecture of the compiler are covered in the Design Goals.

More information about developing the compiler itself is covered in the Development Guide.