Glossary
Glossary of basic terms in effector
#
EventEvent is a function you can subscribe to. It can be an intention to change the store, indication of something happening in the application, a command to be executed, aggregated analytics trigger and so on.
Event in api documentation
#
StoreStore is an object that holds state. There can be multiple stores.
Store in api documentation
#
EffectEffect is a container for (possibly async) side effects.
It exposes special events and stores, such as pending
, done
, fail
, finally
, etc...
It can be safely used in place of the original async function.
It returns promise with result of a function call
The only requirement for the function:
- Must have zero or one argument
Effect in api documentation
#
DomainDomain is a namespace for your events, stores and effects.
Domains are notified when events, stores, effects, or nested domains are created via onCreateEvent
, onCreateStore
, onCreateEffect
, onCreateDomain
methods.
It is useful for logging or other side effects.
Domain in api documentation
#
UnitData type used to describe business logic of applications. Most of the effector methods deal with unit processing. There are four units types: store, event, effect and domain
#
Common unitCommon units can be used to trigger updates of other units. There are three common unit types: store, event and effect. When a method accepts units, it means that it accepts events, effects, and stores as a source of reactive updates
#
PurityMost of functions in api must not call other events or effects: it's easier to reason about application's data flow when imperative triggers are grouped inside watchers and effect handlers rather than spread across entire business logic.
Correct, imperative:
Correct, declarative:
Incorrect:
#
ReducerReducer calculates a new state given the previous state and an event's payload. For stores, if reducer returns undefined or the same state (===), then there will be no update for a given store.
#
WatcherWatcher is used for side effects. Accepted by event.watch, store.watch and domain.onCreate* hooks. Return value of a watcher is ignored.
#
SubscriptionFunction, returned by forward, event.watch, store.watch and some others methods. Used for cancelling a subscription. After first call, subscription will do nothing
Managing subscriptions manually distracts from business logic improvements
Effector provides a wide range of features to minimize the need to remove subscriptions. This sets it apart from most other reactive libraries