Skip to content

DSL keywords

The full reserved-keyword surface, generated from the compiler’s own keyword set so it cannot drift from what Reactra actually accepts. Select a keyword for its syntax, valid scopes, and a link to the relevant guide.

  • action — An event handler or mutation. Assignments to state and store fields inside an action are reactive writes.
  • await — Renders a resource’s resolved value in the view, paired with pending and error clauses.
  • command — The async write primitive. Block form → useActionState; arrow form → useTransition with optional optimistic / invalidate / rollback.
  • component — Declares a component — the unit of UI. Holds state, derived, action, view, and the rest of the surface.
  • derived — A computed reactive value. Recomputes when its inputs change; you read it, never call or assign it.
  • effect — A side effect that re-runs when its listed reactive dependencies change (effect on(...)).
  • errorBoundary — A component-level error boundary clause: errorBoundary(e) { <Fallback error={e} /> }.
  • implements — Declares that a service implements a typed interface, for DI substitution.
  • inject — Acquires a dependency. Always takes a kind qualifier: inject store (bare = subscribe, argumented = own) or inject service.
  • input — Declares owner-provided input on a store: input userId: string.
  • meta — Per-route document metadata: meta { title: "…" }. Accepts template strings that interpolate state.
  • mount — Runs once when the component mounts (a useEffect with an empty dependency list).
  • param — Binds a dynamic route path segment, typed: param id: string for pages/users/[id].tsx.
  • prefetch — Declares route prefetch behaviour, e.g. prefetch on hover.
  • preservedpreserved state — store state that survives re-instantiation within its scope.
  • provide — Provides a store or service implementation to descendants.
  • query — Binds a URL query parameter, typed: query tab?: string.
  • ref — Declares an element ref usable in the view: ref formEl.
  • resource — Declarative async data. The argument list is the dependency (refetch on change); the arrow body is the fetcher. Supports swr / cache / retry modifiers.
  • service — Declares a service — a cross-cutting dependency acquired via inject service.
  • state — Reactive local component state. Compiles to useState; ephemeral (resets on unmount).
  • store — Declares a store — shared state with an explicit scope and lifecycle that outlives a single component.
  • suspense — A Suspense boundary clause for async children.
  • transition — Declares a route/view transition, e.g. transition slide-left for 300ms.
  • uses — Applies a behaviour plugin to a component or store: uses replayable, uses undoable, uses traceable.
  • view — The JSX the component renders, with the component’s declared names in scope.

Generated from the compiler’s reserved-keyword set. Do not edit by hand — run bun run scripts/site/gen-keyword-reference.ts to regenerate.