@nanostores/vue
Version:
Vue integration for Nano Stores, a tiny state manager with many atomic tree-shakable stores
36 lines (33 loc) • 884 B
TypeScript
import type { AnyStore, Store, StoreValue } from 'nanostores'
import type { DeepReadonly, ShallowRef, UnwrapNestedRefs } from 'vue'
/**
* Subscribes to store changes and gets store’s value.
*
* ```html
* <template>
* <home-view v-if="page.router === 'home'" />
* <error-404-view v-else />
* </template>
*
* <script>
* import { useStore } from '@nanostores/vue'
* import { $router } from './router/index.js'
*
* const page = useStore($router)
* </script>
* ```
*
* @param store Store instance
* @returns Reactive store value
*/
export function useStore<
SomeStore extends Store,
Value extends StoreValue<SomeStore>
>(store: SomeStore): DeepReadonly<UnwrapNestedRefs<ShallowRef<Value>>>
/**
* Registers the store for the devtools component inspector.
*
* @param store Store instance
* @private
*/
export function registerStore(store: AnyStore): void