Skip to content

@wirestate/react-mobx [monorepo] [docs]

npmlicense

Re-exports MobX and mobx-react-lite, plus class decorator wrappers compatible with TypeScript's legacy decorators.

Installation

bash
npm install @wirestate/react-mobx mobx mobx-react-lite

Usage

ts
import { makeObservable, observer, Observable, ShallowObservable, Action, Computed } from "@wirestate/react-mobx";

Decorator wrappers

ExportWraps
Observable()observable
ShallowObservable()observable.shallow
RefObservable()observable.ref
DeepObservable()observable.deep
Action()action
Computed()computed

Example:

ts
import { Injectable, Inject, WireScope } from "@wirestate/core";
import { makeObservable, Observable, Action } from "@wirestate/react-mobx";

@Injectable()
export class CounterService {
  @Observable()
  public count = 0;

  public constructor(@Inject(WireScope) private scope: WireScope) {
    makeObservable(this);
  }

  @Action()
  public increment(): void {
    this.count++;
  }
}

License

MIT