nusm axolotlnusm
API Reference

useStore

React selector hook signature and equality behavior.

function useStore<TState, TSelected = NoInfer<TState>>(
  store: NusmStore<TState>,
  selector?: (state: NoInfer<TState>) => TSelected,
  options?: UseStoreOptions,
): TSelected

Import it from the React-specific entry point:

import { useStore } from "nusm/react"

Options

Prop

Type

Parameters

ParameterRequiredDescription
storeYesA store returned by createNusmStore
selectorNoMaps full state to the value the component needs; defaults to identity
options.equalNofalse uses shallow equality; true uses deep equality

Examples

const count = useStore(counterStore, (state) => state.count)
const fullState = useStore(counterStore)
const profile = useStore(userStore, (state) => state.profile, {
  equal: true,
})

The hook uses React's useSyncExternalStore and preserves the previous selected reference when the configured equality function considers the next selection equal.

Package boundary

The root nusm entry does not import React. Applications that do not use React can stay entirely on the core entry point.

On this page