Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50550 Changelog: [internal] This creates the basic documentation for the Event Loop, adapting some of the content of the original RFC: https://github.com/react-native-community/discussions-and-proposals/blob/main/proposals/0744-well-defined-event-loop.md bypass-github-export-checks Reviewed By: lenaic Differential Revision: D72632590 fbshipit-source-id: fbe30334a567dc642a4b817abb0c535b633277e7
React Native Technical Documentation
The React Native technical documentation describes how React Native works internally, the subsystems it is composed of, how they work and how they interact with each other.
The intended audience is people who want to learn about the internals of React Native and contribute to it. End users of React Native are meant to use the public website instead (its code can be found here).
For details on how we approach technical documentation in this repository, see GUIDELINES.md.
Usage
This repository is not meant to be consumed directly by end users. Instead, it creates several packages that are published to the NPM registry for direct consumption by end users and frameworks.
This repository uses a monorepo approach, and public packages can be found in the packages directory (the ones that do not contain "private": true in their package.json file).
The most important package is the react-native package, located in packages/react-native, which contains the public JavaScript API.
This repository provides the Android and iOS versions of React Native. Versions for other platforms are maintained in their own repositories.
Design
TODO: Explain the different components of React Native at a high level.
Relationship with other systems
Part of this
- Runtime
- Cross-platform
- Feature Flags
- Host / Instance / Bridgeless
- UI / Fabric
- Events
- Shadow Tree Lifecycle
- Layout
- Mounting
- Native Modules / TurboModules
- JS Runtime
- Event Loop
- Globals and environment setup
- Error handling
- Developer Tools
- React DevTools
- LogBox
- Misc
- Web APIs
- DOM Traversal & Layout APIs
- IntersectionObserver
- MutationObserver
- Performance & PerformanceObserver
- Timers
- Web APIs
- Platform-specific
- Host Platform Interface
- Android
- UI
- Events
- Mounting
- UI
- iOS
- UI
- Events
- Mounting
- UI
- Cross-platform
- Build system
- Android
- iOS
- C++
- JavaScript
- Metro
- Testing
- Android
- iOS
- C++
- JavaScript
- Flow
- TypeScript
- Jest
- ESLint
- Integration / E2E
- Fantom
- Tooling
- React Native DevTools
Used by this
This repository has many different types of dependencies: build systems, external packages to be used during development, external packages used at runtime, etc.
Uses this
The main use cases for this repository are:
- Developing React Native itself.
- Testing and releasing React Native.
- Synchronizing forks like
react-native-windowsandreact-native-macos.