facebook/react
Glossary
Internal vocabulary that recurs across the runtime, the compiler, and the team's PR descriptions. If you have ever opened a React PR titled [Fizz] add additional task reentrancy protections (#36291) and squinted, this page is for you.
Core runtime
Fiber — A single node in React's internal work-in-progress tree. Implemented in packages/react-reconciler/src/ReactFiber.js. Every component, host element, fragment, suspense boundary, etc. has a fiber. Each fiber has an alternate pointer to its previous version, which is how "double buffering" of the tree works.
Fiber root — The container of an entire React tree, returned by createRoot/hydrateRoot. Defined in packages/react-reconciler/src/ReactFiberRoot.js. Holds the current and pending work-in-progress trees, the lane bitmask, and root-level state like isDehydrated.
Work-in-progress (WIP) tree — The new fiber tree being built during a render. Each WIP fiber's alternate points at the corresponding committed fiber. After commit, the roles flip.
Lane / lane set — A 31-bit bitmask representing scheduling priority. One bit per lane. Defined in packages/react-reconciler/src/ReactFiberLane.js. Examples: SyncLane, InputContinuousLane, DefaultLane, TransitionLane1..16, IdleLane, OffscreenLane, DeferredLane. The reconciler picks the highest-priority lane(s) to render in any given pass.
Update queue — Per-fiber list of pending state updates. Class components use ReactFiberClassUpdateQueue.js; hooks use the queues attached to each Hook cell in ReactFiberHooks.js. Updates are applied during render in lane order.
Effect — Two unrelated meanings:
- Hook effect —
useEffect,useLayoutEffect,useInsertionEffectcallbacks queued for the commit phase. - Fiber flag — A bitmask on each fiber describing what work the commit phase should do (
Placement,Update,Deletion,Hydrating,Snapshot,ContentReset, ...). Seepackages/react-reconciler/src/ReactFiberFlags.js.
Begin work / complete work — The two halves of the render phase. beginWork (in ReactFiberBeginWork.js) descends into a fiber's children. completeWork (in ReactFiberCompleteWork.js) bubbles flags up and prepares host instances.
Commit phase — The synchronous, uninterruptible phase where actual DOM mutations happen. Implemented across ReactFiberCommitWork.js, ReactFiberCommitEffects.js, ReactFiberCommitHostEffects.js, and ReactFiberCommitViewTransitions.js.
Host config — The set of imperative methods a renderer must implement (createInstance, appendChild, commitUpdate, …). The reconciler imports them from ReactFiberConfig, which is fork-resolved at build time to the right renderer's implementation. See packages/react-reconciler/src/forks/.
Host instance — The opaque platform object for a host component (a DOM node, a Fabric shadow node, an ART shape, …). Each renderer defines what this is.
Reconciliation — Diffing children. Implemented in packages/react-reconciler/src/ReactChildFiber.js. The "you are missing a key" warning comes from here.
Hydration — Walking an existing host tree and matching it to a fresh React render. Two flavors: full-tree hydration (hydrateRoot) and selective hydration for Suspense boundaries during streaming SSR. Code lives in ReactFiberHydrationContext.js and the renderer-side hydration helpers.
Concurrent rendering
Concurrent feature — Anything that requires the time-slicing work loop: transitions, deferred values, Suspense for data, etc. Enabled by default since React 18 in createRoot/hydrateRoot.
Transition — A render that has been marked low-priority via useTransition or startTransition. Implementation in packages/react/src/ReactStartTransition.js and packages/react-reconciler/src/ReactFiberTransition.js.
Deferred value — A value whose update is processed at lower priority. useDeferredValue lives in packages/react-reconciler/src/ReactFiberHooks.js (look for mountDeferredValue/updateDeferredValue).
Suspense / Suspense boundary — A component that catches thrown thenables / async errors and shows a fallback. Internal helpers in ReactFiberSuspenseComponent.js, ReactFiberSuspenseContext.js, ReactFiberThrow.js, ReactFiberThenable.js.
Activity (formerly Offscreen) — <Activity> (publicly) / OffscreenComponent (internally) — a primitive that hides a subtree without unmounting it, preserving state and DOM. See ReactFiberOffscreenComponent.js.
View transition — Browser View Transitions API integration. Code in ReactFiberCommitViewTransitions.js, ReactFiberApplyGesture.js. New since React 19.
Gesture / Gesture scheduler — A second scheduling primitive, layered on top of the lane scheduler, used to drive view transitions and (eventually) gesture-driven animation. ReactFiberGestureScheduler.js.
Server / streaming
Fizz — React's streaming SSR engine. Lives in packages/react-server/src/ReactFizzServer.js. Different driver per platform: react-dom/server.node, react-dom/server.edge, react-dom/server.browser, react-dom/server.bun.
Flight — React Server Components' wire format. Server side: packages/react-server/src/ReactFlightServer.js. Client side: packages/react-server-dom-*/.
RSC (React Server Components) — Components that run only on the server (or at build time) and return a Flight payload. Marked by the react-server exports condition.
Client reference / Server reference — In RSC, a client reference is a pointer to a client component module that the bundler must include in the browser bundle; a server reference is a function that can be called from the client and runs on the server (Server Actions). Both are encoded in the Flight payload.
Resume / Postponed — Partial pre-rendering APIs. prerender returns a postponed state which can be passed to resume to finish rendering on a different machine/request.
Hoistable — A resource (stylesheet, link, script, meta) that React promotes from inside the component tree into <head>. Coordinated by react-dom-bindings/src/server/ReactDOMFloatServer.js and the matching client code.
Float — The Float (resource hoisting) implementation. Same general area as "Hoistable".
Compiler
HIR — High-level Intermediate Representation. The compiler's CFG-based representation. Defined in compiler/packages/babel-plugin-react-compiler/src/HIR/HIR.ts.
Place / Identifier / IdentifierId — A SSA-style value reference in HIR. A Place points at an Identifier, which has a unique IdentifierId.
Pass — A single transformation/analysis over the HIR, scheduled by compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Pipeline.ts.
Aliasing effect — A side-effect annotation on instructions that describes data flow (Capture, Alias, Freeze, Mutate, …). See compiler/packages/babel-plugin-react-compiler/src/Inference/AliasingEffects.ts.
Hook aliasing signature — Per-hook description of how the hook treats its arguments (freezes them, returns aliases, etc.). In compiler/packages/babel-plugin-react-compiler/src/HIR/Globals.ts.
ReactiveScope — A synthesized memoization scope: the unit of work that the compiler will wrap in a cache lookup at the end of the pipeline.
Reactive function / Reactive block — Data structures produced after lowering HIR back to a memoization-friendly tree.
Forgive (or react-forgive) — The VS Code extension that surfaces compiler diagnostics inline. Lives in compiler/packages/react-forgive/.
Snap — The compiler's golden-file test runner. yarn snap from inside compiler/.
Release / channel vocabulary
Release channel — A logical "what set of feature flags are on" view of the source. The runtime has at least: stable, experimental, www-modern, www-classic, next-major. Selected at build time and at test time. See packages/shared/forks/.
www — Facebook's internal web codebase. Many flags are gated on whether the build is for www. www-classic is the legacy class-component-heavy codepath; www-modern is the concurrent-mode-on codepath.
react-server condition — The npm exports condition that means "you are on a server runtime that may use Server Components". When set, react, react-dom, etc. expose a different surface (e.g. no client hooks).
Prerelease — An automated daily npm publish from main. Two channels: next (stable channel, version 0.0.0-<sha>-<date>) and experimental (experimental channel, version 0.0.0-experimental-<sha>-<date>). See scripts/release/.
Other recurring terms
Invariant — if (!cond) throw new Error('...'). A runtime sanity check. The error message is later replaced at build time by an integer code via scripts/error-codes/extract-errors.js; the human-readable text is hosted at react.dev/errors.
__DEV__ — A global boolean that is true in development bundles and stripped (and dead-code-eliminated) in production. Defined per build by Rollup's replace plugin.
__EXPERIMENTAL__ / __VARIANT__ / __PROFILE__ — Sibling globals controlling experimental code paths, feature variants, and profiling builds.
Owner stack — A development-only secondary stack trace that records which component rendered (owns) a given component, as opposed to which component contains it in the JSX tree. packages/react/src/ReactOwnerStack.js.
Component stack — The traditional "who is in the JSX tree above me" stack. Both styles are produced when reporting errors.
Selectors / Test selectors — A set of test-only APIs for finding nodes in the fiber tree by name or props. Implementation in packages/react-reconciler/src/ReactTestSelectors.js. Used by some Meta-internal test infra.
MaintainerCheck — A GitHub Actions job (shared_check_maintainer.yml) that labels PRs from people listed in MAINTAINERS.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.