Skip to main content
Version: v0.x (deprecated)

Introduction

This version is deprecated

This documentation is for use-less-react v0.x, which has been deprecated.
The current version is v1.0. Please consult the v1.0 documentation for the modern API.

How use-less-react was born

use-less-react was born out of a simple question: can we use React purely as a reactive layer, without letting it invade the logics of our applications?

The core idea was to trim React down to the absolute bone, strictly confining it to the reactive display of things in the UI. All the logics — from business rules to pure utility functions — would be deliberately moved into vanilla JavaScript/TypeScript classes.

This strategic separation had one clear goal: to let the codebase get back to embracing classic Object-Oriented Programming (OOP) principles and the full spectrum of design patterns. These are all things that the conventional, "hooks-heavy" approach in React development often ends up heavily constraining.

The v0.x experiment

Version 0.x was an initial experiment to validate the idea of reactive classes in React. It introduced:

  • Decorator-based reactivity using @Notifies and @DependsOn
  • PubSub classes that could notify React components when properties changed
  • A single hook (useReactiveInstance) to connect classes to components
  • Serializable classes for SSR/SSG scenarios

This approach worked and proved the concept, but it had limitations:

  • The notification system was somewhat rigid
  • The reactivity model wasn't clear enough to be predictable in every scenario
  • The overall design wasn't as flexible as needed for complex applications

Why v0.x was deprecated

After using v0.x and validating the core idea, it became clear that a more flexible reactivity model was needed. The notification system was error-prone and the reactivity model wasn't going to handle complexity well.

v1.0 introduced a new reactivity model based on ReactiveValue, ReactiveStore and DisposableResources, which provides:

  • A fully declarative paradigm for reactivity
  • Safer API for avoiding memory-leaks
  • A more composable API, especially for computed values
  • Easier migration from other state management solutions
  • Less boilerplate when defining reactive properties

The new model maintains the core philosophy of "React renders; classes think" while offering more flexibility and power.

What to do if you're still using v0.x

If you're still using v0.x, we strongly recommend migrating to v1.0. See the Migration Guide for detailed instructions.

Start here: v1.0 Documentation