@triggery/signals
Читай значение сигнала из условия Triggery, не задействуя signal-tracking на хост-компоненте. Совместимо с @preact/signals-core, alien-signals и любым структурно похожим сигналом, у которого есть peek() или .value.
Установка
Заголовок раздела «Установка»pnpm add @triggery/core @triggery/react @triggery/signals @preact/signals-core npm install @triggery/core @triggery/react @triggery/signals @preact/signals-core yarn add @triggery/core @triggery/react @triggery/signals @preact/signals-core bun add @triggery/core @triggery/react @triggery/signals @preact/signals-core Peer-зависимости: react >= 18.0.0. Библиотека сигналов — на твой выбор: подходят и @preact/signals-core, и alien-signals.
Что внутри
Заголовок раздела «Что внутри»| Экспорт | Назначение |
|---|---|
useSignalCondition(trigger, name, signal, selector?) | Регистрирует условие на основе сигнала. Сначала пробует peek(), при отсутствии — .value. |
Быстрый пример
Заголовок раздела «Быстрый пример»С селектором-проекцией:
Как это работает
Заголовок раздела «Как это работает»Pull-only: сигнал читается только при срабатывании триггера. Адаптер сначала пробует peek() (без dependency tracking) и откатывается к .value, если peek отсутствует. В обоих случаях подписчик на сигнал не регистрируется, поэтому хост-компонент никогда не ререндерится на обновлениях сигнала.
Если компоненту нужно ещё и рендерить сигнал — используй useSignal() из @preact/signals-react или аналог из своей библиотеки сигналов; оба пути ортогональны.