Utilizamos cookies para mejorar tu experiencia, mostrar contenido personalizado y analizar el tráfico del sitio. Para más información, visita nuestra política de cookies.
Este documento explica la estrategia de gestión de estado utilizada en AdSpaces, combinando React Query para el estado del servidor y Context API para el estado local.
Estado de servidor y caché
Utilizamos React Query (@tanstack/react-query) para manejar el estado que proviene del servidor, incluyendo:
// Ejemplo de uso de React Query
const { data, isLoading, error } = useQuery({
queryKey: ['spaces'],
queryFn: fetchSpaces
});
// Mutación para actualizar datos
const mutation = useMutation({
mutationFn: updateSpace,
onSuccess: () => {
queryClient.invalidateQueries(['spaces'])
}
});
Estado local y de UI
Usamos Context API de React para manejar:
// Ejemplo de Context
export const AuthContext = React.createContext();
export const AuthProvider = ({ children }) => {
const [user, setUser] = useState(null);
// Lógica de autenticación...
return (
<AuthContext.Provider value={{ user, login, logout }}>
{children}
</AuthContext.Provider>
);
};
Nuestra estrategia sigue estos principios:
1. El usuario interactúa con la UI → 2. Se dispara una mutación de React Query → 3. Los datos se actualizan en el servidor → 4. React Query invalida la caché → 5. Se vuelven a obtener los datos actualizados → 6. La UI se actualiza
React.memo para prevenir re-renderizados innecesariosuseMemo y useCallback para datos computados