Mobx incorporates functional reactive programming principles, and uses observables as its stores:

You can tag entities (for example, objects and arrays) as observables using the @observable decorator. You can also tag some functions with the @computed decorator to make it into a derivation or reaction. The @computed functions will be re-run each time the @observable store has changed.
Decorators are a proposed addition to ECMAScript, currently tracked at github.com/tc39/proposal-decorators.
A derivation is a value that can be derived solely from the state. For example, we can make our LoginPage component a derivation of the state. When the state contains a token property, the user is already logged in and the LoginPage can display a message saying "You’re already logged in". When the state does not contain the token property, LoginPage will render the LoginForm component. What the LoginPage displays can be wholly derived from the value of the token property inside the state object.
Reactions are events that are triggered whenever the state changes. For instance, if the stale state property of a news feed application changes to true, you may want to query the API to get fresh data.
Lastly, state changes are triggered by actions, which are events that mutate the state. In MobX, actions are simply JavaScript statements that update the state in some way.