Skip to main content

Observable-based state management for performant game UIs built in React


Each aspect of the UI subscribes to the facet of the state that is relevant for it, and will only update if that piece of state changes.

Minimal reconciliation cost

Observables mean that reconciliation is almost never necessary, creating orders of magnitude improvements in performance when updating individual styles in the leaves of a complex React tree.

Mutable-objects friendly

In Game UIs, object references are often shared with an underlying C++ / Java platform to avoid serialization costs, and updates often come via mutation: @react-facet supports this out-of-the-box