Creates a Gate to consume data from view, designed for vue 3. If defaultState
is defined, Gate.state will be created with passed value.
Methods
createGate(config?: {defaultState?, domain?, name?})
Arguments
config
(Object): Optional configuration object
defaultState?
: Optional default state for Gate.statedomain?
(Domain): Optional domain which will be used to create gate units (Gate.open event, Gate.state store, and so on)name?
(string): Optional name which will be used as the name of a created Vue component
Returns
Examples
Basic Usage
import { createGate, useGate } from "effector-vue/composition";
const ListGate = createGate({
name: "Gate with required props",
});
const ListItem = {
template: `
<div>
{{id}}
</div>
`,
props: {
id: {
type: String,
required: true,
},
},
setup(props) {
useGate(ListGate, () => props.id);
},
};
const app = {
template: `
<div>
<ListItem :id="id" />
</div>
`,
components: {
ListItem,
},
setup() {
const id = ref("1");
return { id };
},
};
Gate.state.watch((state) => {
console.log("current state", state);
});
// => current state null
app.mount("#app");
// => current state 1
app.unmount();
// => current state null