Postat acum 1 zi
typescript
import { create } from 'zustand';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { persist, createJSONStorage } from 'zustand/middleware';
type AuthState = {
token: string | null;
setToken: (t: string | null) => void;
};
export const useAuth = create<AuthState>()(
persist(
(set) => ({
token: null,
setToken: (t) => set({ token: t }),
}),
{
name: 'auth',
storage: createJSONStorage(() => AsyncStorage),
}
)
);Am folosit Redux 4 ani. Ultimele 3 proiecte le-am început cu Zustand. Nu mă mai întorc.
Ce m-a convins
- 90% mai puțin boilerplate
- Store-uri separate per domain, fără reducer giant
- Persist middleware funcționează perfect cu AsyncStorage
- DevTools-ul e decent (nu la nivelul Redux, dar OK)
Unde Zustand strălucește
- Login state, user preferences
- Modalele / bottom sheets
- Cart state local
- Preferințe UI (theme, language)
Unde pierde (încă)
- Echipe mari obișnuite cu pattern-urile Redux
- Time-travel debugging avansat
- Saga-urile lor complicate de async
Migrare
Nu o faci "big bang". Iei un slice și îl muți. Lași restul.