Перейти к основному содержимому

clearNode

Низкоуровневый метод для уничтожения юнитов и их связей

Формула#

clearNode(unit: Unit): void
clearNode(unit: Unit, config: {deep?: boolean}): void

Аргументы#

  1. unit: Любой юнит включая домены и scope. Переданный юнит будет уничтожен и удалён из памяти

  2. config?: Объект конфигурации

    • deep?: boolean

      Глубокое удаление. Уничтожает юнит и все его производные

Возвращает#

void

Примеры#

Пример удаления стора#

import {createStore, createEvent, clearNode} from 'effector'
const inc = createEvent()
const store = createStore(0).on(inc, x => x + 1)
inc.watch(() => console.log('inc called'))
store.watch(x => console.log('store state: ', x))
// => store state: 0
inc()
// => inc called
// => store state: 1
clearNode(store)
inc()
// => inc called

Запустить пример

Пример с deep#

import {createStore, createEvent, clearNode} from 'effector'
const inc = createEvent()
const trigger = inc.prepend(() => {})
const store = createStore(0).on(inc, x => x + 1)
trigger.watch(() => console.log('trigger called'))
inc.watch(() => console.log('inc called'))
store.watch(x => console.log('store state: ', x))
// => store state: 0
trigger()
// => trigger called
// => inc called
// => store state: 1
clearNode(trigger, {deep: true})
trigger()
// no reaction
inc()
// no reaction!
// all units, which depend on trigger, are erased
// including inc and store, because it depends on inc

Запустить пример

Последнее обновление