Низкоуровневый метод для уничтожения юнитов и их связей
Формула
clearNode(unit: Unit): voidclearNode(unit: Unit, config: {deep?: boolean}): void
Аргументы
-
unit
: Любой юнит включая домены и scope. Переданный юнит будет уничтожен и удалён из памяти -
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: 0inc();// => inc called// => store state: 1clearNode(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: 0trigger();// => trigger called// => inc called// => store state: 1clearNode(trigger, { deep: true });trigger();// no reactioninc();// no reaction!// all units, which depend on trigger, are erased// including inc and store, because it depends on inc
Перевод поддерживается сообществом
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.