useLocalStorage#

A useStorage preset backed by window.localStorage — a signal that persists across sessions. Browser composable — import from @sigx/use-web.

TypeScript
import { useLocalStorage } from '@sigx/use-web';

const prefs = useLocalStorage('prefs', { theme: 'light' });
prefs.theme = 'dark';   // persisted, reactive — no .value

const token = useLocalStorage('token', '');  // primitive mode
token.value = 'abc';                          // persisted

Signature#

TypeScript
function useLocalStorage<T extends Primitive>(key: string, defaults: T, options?: UseStorageOptions<T>): PrimitiveSignal<T>;
function useLocalStorage<T extends object>(key: string, defaults: T, options?: UseStorageOptions<T>): Signal<T>;

Same two overloads as useStorage: an object default returns a deep-reactive Signal<T> that auto-persists on mutation; a primitive default returns a PrimitiveSignal<T> that persists on .value write.

See useStorage for the full semantics — object proxies, cross-tab sync, serializers, options, and SSR behaviour.

See also#

  • useStorage — the flagship, with every option and the deep-reactive model.
  • useSessionStorage — the same preset scoped to one tab session.