import { withRegion } from "effector";

Метод основан на идее управления памятью на основе регионов (см. Region-based memory management для справки).

Методы

withRegion(unit, callback)

Начиная с

Метод позволяет явно передать владение всеми юнитами (включая связи, созданные с помощью sample, forward и т.д.), определенными в callback, на unit. Как следствие, все созданные связи будут удалены, как только будет вызван clearNode на Unit.

Формула

withRegion(unit: Unit<T> | Node, callback: () => void): void

Аргументы

  1. unit: Unit | Node — который будет служить “локальной областью” или “регионом”, владеющим всеми юнитами, созданными внутри предоставленного callback. Обычно узел, созданный методом низкого уровня createNode, оптимален для этого случая.
  2. callback: () => void — Callback, в котором должны быть определены все соответствующие юниты.

Примеры

import { createNode, createEvent, restore, withRegion, clearNode } from "effector";

const first = createEvent();
const second = createEvent();
const $store = restore(first, "");
const region = createNode();

withRegion(domain, () => {
  // Следующие связи, созданные с помощью `sample`, принадлежат предоставленному юниту `domain`
  // и будут удалены, как только будет вызван `clearNode` на `domain`.
  sample({
    clock: second,
    target: first,
  });
});

$store.watch(console.log);

first("привет");
second("мир");

clearNode(region);

second("не вызовет обновлений `$store`");
Перевод поддерживается сообществом

Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.

Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.

Соавторы