Методы
import { useProvidedScope } from "effector-vue/composition";
since

useProvidedScope появился в effector-vue 23.3.0

Возвращает Scope, в котором работает компонент, или null, если приложение работает в глобальном режиме. В основном нужен для ручных вызовов allSettled и scopeBind: остальные хуки находят скоуп сами.

Только для Vue 3 и Composition API.

Методы

useProvidedScope(options?)

Формула

useProvidedScope(options?: { forceScope?: boolean }): Scope | null;
useProvidedScope(options: { forceScope: true }): Scope;

Аргументы

  1. options? { forceScope?: boolean }: с forceScope хук бросает ошибку вместо возврата null

Возвращает

Scope | null, а с forceScope: true всегда Scope.

Примеры

Загрузка данных на сервере

<script setup lang="ts">
import { onServerPrefetch } from "vue";
import { allSettled } from "effector";
import { useProvidedScope, useUnit } from "effector-vue/composition";
import { loadUserFx, $user } from "./model";
const scope = useProvidedScope({ forceScope: true });
const user = useUnit($user);
onServerPrefetch(() => allSettled(loadUserFx, { scope, params: 1 }));
</script>
<template>
<p>{{ user.name }}</p>
</template>

Примечания

Скоуп ищется через контекст инъекции, поэтому вызывайте хук в setup до первого await или внутри app.runWithContext. Полный порядок поиска описан в EffectorScopePlugin.

Перевод поддерживается сообществом

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

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

Соавторы