Core Concepts
The five concepts every PraxisJS application is built on — components, reactivity, JSX, lifecycle, and async data.
Core Concepts
Five concepts. Together they cover everything you need to build any PraxisJS application. Read them in order the first time — each one builds on the previous.
Components
StatefulComponent for components with internal logic. StatelessComponent for pure presentational ones. Both require @Component() and a render() method.
Reactivity & Signals
How @State and @Computed work, why arrow functions are the reactive contract, and how to read signals without creating subscriptions.
JSX Syntax
Reactive vs static expressions, conditionals, lists, event handlers, CSS classes, inline styles, fragments, and ref callbacks.
Lifecycle Hooks
onBeforeMount, onMount, onUnmount, onError — when each runs, what's available at each stage, and how to clean up.
Async Data
@Resource binds a fetcher to a component field with reactive refetch on dependency changes, keepPreviousData, cancel, and optimistic updates.
Recommended reading order
Components — understand StatefulComponent vs StatelessComponent and the single-render contract before anything else
Reactivity — learn why {() => expr} is needed and how signal propagation works end-to-end
JSX — see every template pattern: lists, conditionals, events, refs, fragments, classes, and styles
Lifecycle — learn when the DOM is available, when to clean up, and how to handle errors
Async Data — add data fetching with @Resource and understand how reactive dependencies trigger refetches
After these five pages, move to Decorators for the complete API reference, or jump to Packages if you need routing, stores, or DI.
Project Status
PraxisJS is stable and production-ready. Understand the package stability matrix and what to expect from the project going forward.
Components
PraxisJS has two component types — StatefulComponent for components with internal state, and StatelessComponent for pure presentational components.