@triggery/vue
Биндинги Vue 3 для Triggery. Та же форма useEvent / useCondition / useAction, что в @triggery/react, нативно для Composition API и effectScope. Без рантайм-зависимостей — тонкая прослойка над жизненным циклом поверх @triggery/core.
Установка
Заголовок раздела «Установка»pnpm add @triggery/core @triggery/vue vue npm install @triggery/core @triggery/vue vue yarn add @triggery/core @triggery/vue vue bun add @triggery/core @triggery/vue vue Peer-зависимости: vue >= 3.0.0.
Что внутри
Заголовок раздела «Что внутри»| Экспорт | Назначение |
|---|---|
useEvent | Типизированный эмиттер событий со стабильной идентичностью функции. |
useCondition | Регистрирует pull-only геттер условия. Естественно читает рефы. |
useAction | Регистрирует обработчик действия. Автоочистка через onScopeDispose. |
useInlineTrigger | Одноразовые триггеры внутри <script setup>. |
<TriggerRuntimeProvider> / provideTriggerRuntime | Внедрить рантайм через provide/inject. |
<TriggerScope> / provideTriggerScope | Ограничить регистрации поддеревом-фичей. |
Быстрый старт
Заголовок раздела «Быстрый старт»Три небольших компонента. Триггер читается как спецификация, каждый компонент знает только о своём порту.
1. Опиши триггер
Заголовок раздела «1. Опиши триггер»2. Оберни дерево
Заголовок раздела «2. Оберни дерево»3. Подключи компоненты
Заголовок раздела «3. Подключи компоненты»Нажми на кнопку — Toast залогирует. Переключи settings.value.notifications в false — тишина.
Как работает интеграция с Vue
Заголовок раздела «Как работает интеграция с Vue»Composables работают и внутри setup(), и внутри отдельного effectScope(). useCondition не подписывается через watch — он pull-only, поэтому диспатчи никогда не перерендеривают хост-компонент. Если тому же компоненту нужно отрендерить те же данные — используй обычный computed или ref параллельно.
Очистка
Заголовок раздела «Очистка»Всё автоматически очищается через onScopeDispose — корректно работает в setup-скоупе, отдельных скоупах и внутри <KeepAlive>.