chore: consolidate new foundation and archive v1 (#1495)
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
---
|
||||
category: State
|
||||
related: createGlobalState
|
||||
---
|
||||
|
||||
# createSharedComposable
|
||||
|
||||
Make a composable function usable with multiple Vue instances.
|
||||
|
||||
> [!WARNING]
|
||||
> When used in a **SSR** environment, `createSharedComposable` will **automatically fallback** to a non-shared version.
|
||||
> This means every call will create a fresh instance in SSR to avoid [cross-request state pollution](https://vuejs.org/guide/scaling-up/ssr.html#cross-request-state-pollution).
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { createSharedComposable, useMouse } from '@vueuse/core';
|
||||
|
||||
const useSharedMouse = createSharedComposable(useMouse);
|
||||
|
||||
// CompA.vue
|
||||
const { x, y } = useSharedMouse();
|
||||
|
||||
// CompB.vue - will reuse the previous state and no new event listeners will be registered
|
||||
const { x, y } = useSharedMouse();
|
||||
```
|
||||
|
||||
## Type Declarations
|
||||
|
||||
```ts
|
||||
export type SharedComposableReturn<T extends AnyFn = AnyFn> = T;
|
||||
/**
|
||||
* Make a composable function usable with multiple Vue instances.
|
||||
*
|
||||
* @see https://vueuse.org/createSharedComposable
|
||||
*
|
||||
* @__NO_SIDE_EFFECTS__
|
||||
*/
|
||||
export declare function createSharedComposable<Fn extends AnyFn>(
|
||||
composable: Fn,
|
||||
): SharedComposableReturn<Fn>;
|
||||
```
|
||||
Reference in New Issue
Block a user