Domain
Domain is a namespace for your events, stores and effects.
Domain can subscribe to event, effect, store or nested domain creation with onCreateEvent
, onCreateStore
, onCreateEffect
, onCreateDomain
methods.
It is useful for logging or other side effects.
Unit creators
effector 20.7.0
createEvent(name?)
Arguments
name
? (string): event name
Returns
Event: New event
createEffect(handler?)
Creates an effect with given handler
Arguments
handler
? (Function): function to handle effect calls, also can be set withuse(handler)
Returns
Effect: A container for async function.
effector 21.3.0
createEffect(name?)
Arguments
name
? (string): effect name
Returns
Effect: A container for async function.
createStore(defaultState)
Arguments
defaultState
(State): store default state
Returns
Store: New store
createDomain(name?)
Arguments
name
? (string): domain name
Returns
Domain: New domain
history
Contains mutable read-only sets of units inside domain.
Formulae
const {stores, events, domains, effects} = domain.history
- When any kind of units created inside domain, it appears in set with the name of type(stores, events, domains, effects) in the same order as created
effector 20.3.0
import {createDomain} from 'effector'
const domain = createDomain()
const eventA = domain.event()
const $storeB = domain.store(0)
console.log(domain.history)
// => {stores: Set{storeB}, events: Set{eventA}, domains: Set, effects: Set}
Aliases
event(name?)
An alias for domain.createEvent
effect(name?)
An alias for domain.createEffect
store(defaultState)
An alias for domain.createStore
domain(name?)
An alias for domain.createDomain
Domain hooks
onCreateEvent(hook)
Formulae
domain.onCreateEvent(event => {})
- Function passed to
onCreateEvent
called every time, as new event created indomain
- Function called with
event
as first argument - Result of function call is ignored
Arguments
hook
(Watcher): A function that receives Event and will be called during every domain.createEvent call
Returns
Subscription: Unsubscribe function.
Example
import {createDomain} from 'effector'
const domain = createDomain()
domain.onCreateEvent(event => {
console.log('new event created')
})
const a = domain.createEvent()
// => new event created
const b = domain.createEvent()
// => new event created
onCreateEffect(hook)
Formulae
domain.onCreateEffect(effect => {})
- Function passed to
onCreateEffect
called every time, as new effect created indomain
- Function called with
effect
as first argument - Result of function call is ignored
Arguments
hook
(Watcher): A function that receives Effect and will be called during every domain.createEffect call
Returns
Subscription: Unsubscribe function.
Example
import {createDomain} from 'effector'
const domain = createDomain()
domain.onCreateEffect(effect => {
console.log('new effect created')
})
const fooFx = domain.createEffect()
// => new effect created
const barFx = domain.createEffect()
// => new effect created
onCreateStore(hook)
Formulae
domain.onCreateStore($store => {})
- Function passed to
onCreateStore
called every time, as new store created indomain
- Function called with
$store
as first argument - Result of function call is ignored
Arguments
hook
(Watcher): A function that receives Store and will be called during every domain.createStore call
Returns
Subscription: Unsubscribe function.
Example
import {createDomain} from 'effector'
const domain = createDomain()
domain.onCreateStore(store => {
console.log('new store created')
})
const $a = domain.createStore(null)
// => new store created
onCreateDomain(hook)
Formulae
domain.onCreateDomain(domain => {})
- Function passed to
onCreateDomain
called every time, as sub domain created indomain
- Function called with
domain
as first argument - Result of function call is ignored
Arguments
hook
(Watcher): A function that receives Domain and will be called during every domain.createDomain call
Returns
Subscription: Unsubscribe function.
Example
import {createDomain} from 'effector'
const domain = createDomain()
domain.onCreateDomain(domain => {
console.log('new domain created')
})
const a = domain.createDomain()
// => new domain created
const b = domain.createDomain()
// => new domain created