NocoBase's Observable reactivity mechanism is essentially similar to MobX. The current underlying implementation uses @formily/reactive, and its syntax and concepts are highly compatible with MobX. It was not used directly for historical reasons.
In NocoBase 2.0, Observable reactive objects are ubiquitous. It is the core of the underlying data flow and UI responsiveness, and is widely used in components like FlowContext, FlowModel, and FlowStep.
NocoBase chose Observable over other state management solutions like Redux, Recoil, Zustand, and Jotai for the following main reasons:
observer, the component automatically tracks the Observable properties it uses. When the data changes, the UI refreshes automatically without the need for manual dependency management.observer listens for changes in Observable objects and automatically triggers updates to React components when the data changes. This keeps your UI in sync with your data without having to manually call setState or other update methods.
For more information on reactive usage, please refer to the @formily/reactive documentation.