Создаёт Gate, через который модель получает данные из представления. Для Vue 3. Если задан defaultState, Gate.state создаётся с этим значением.
createGate появился в effector-vue 21.1.0
Методы
createGate(config?: {defaultState?, domain?, name?})
Аргументы
config (Object): необязательный объект конфигурации
defaultState?: начальное состояние Gate.statedomain?(Domain): домен, в котором создаются юниты гейта (событие Gate.open, стор Gate.state и другие)name?(string): имя созданного Vue-компонента
Возвращает
Примеры
Базовый пример
import { createGate } from "effector-vue/composition";
export const ListGate = createGate<string>({ name: "Gate with required props",});
ListGate.state.watch((state) => { console.log("current state", state);});// => current state null<script setup lang="ts">import { useGate } from "effector-vue/composition";
import { ListGate } from "./model";
const props = defineProps<{ id: string }>();
useGate(ListGate, () => props.id);</script>
<template> <div>{{ id }}</div></template><script setup lang="ts">import { ref } from "vue";
import ListItem from "./ListItem.vue";
const id = ref("1");</script>
<template> <ListItem :id="id" /></template>import { createApp } from "vue";
import App from "./App.vue";
const app = createApp(App);
app.mount("#app");// => current state 1
app.unmount();// => current state nullГейт открывается при монтировании с пропсами, которые есть в этот момент, и закрывается при размонтировании. В useGate описан порядок open и set, поведение в <KeepAlive> и на сервере.
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.