const useCart = create((set) => ({
items: [],
add: (item) => set((s) => ({ items: [...s.items, item] })),
}));
const count = useCart((s) => s.items.length); // подписка на часть состояния
Что важно знать
- Хранилище — хук; не нужен провайдер, мало кода.
- Селектор в хуке ограничивает перерисовки нужной частью состояния.
- Хорош для небольших и средних приложений; для серверных данных всё равно лучше TanStack Query.
- Другие легковесные варианты — Jotai (атомы), MobX (наблюдаемые объекты).