diff --git a/docs/src/guide/composables.md b/docs/src/guide/composables.md new file mode 100644 index 00000000..abecaedb --- /dev/null +++ b/docs/src/guide/composables.md @@ -0,0 +1,114 @@ +# Composables + +## [useVueFlow](https://types.vueflow.dev/modules.html#useVueFlow) + +If you're using the options API of Vue you will soon notice that your access to the state of Vue Flow is limited. + +This is where the composition API comes in. + +The composition API and the power of provide/inject allows us to act more flexible with the way we provide states inside a component tree. +Thus accessing the internal state of Vue Flow becomes super easy when using composition. + +```vue:no-line-numbers + + +``` + +`useVueFlow` exposes basically the whole internal state. +The values are reactive, meaning changing the state values returned from `useVueFlow` will trigger changes in the graph. + +## [useZoomPanHelper](https://types.vueflow.dev/modules.html#useZoomPanHelper) + +Similar to the Vue Flow instance the zoom pan helper composable can be used to modify the viewport of the Vue Flow graph. +It requires a valid Vue Flow store in its context. + +```vue:no-line-numbers + + +``` + +## [useHandle](https://types.vueflow.dev/modules.html#useHandle) + +Instead of using the Handle component you can use the useHandle composable to create your own custom nodes. `useHandle` +provides you with a mouseDown- and click-handler functions that you can apply to the element you want to use as a node-handle. + +This is how the default handle component is built: + +```vue + + + +```