Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

Ladezustände und Skeletons

Ladezustände und Skeletons

~12 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026

"Lade Projekte..." als Text (Kapitel 75) FUNKTIONIERT, wirkt aber SPRUNGHAFT – Skeleton-Elemente (PLATZHALTER in der ZIELFORM des Inhalts) sind das GÄNGIGE Muster MODERNER Web-Anwendungen.

Eine Skeleton-Komponente

src/components/ProjectListSkeleton.tsx
function ProjectListSkeleton() {
  return (
    <ul>
      {Array.from({ length: 5 }).map((_, index) => (
        <li key={index} className="skeleton-item">
          <div className="skeleton-line" style={{ width: '60%' }} />
        </li>
      ))}
    </ul>
  );
}

export default ProjectListSkeleton;

Array.from({ length: 5 }) erzeugt FÜNF Platzhalter-Zeilen, OHNE echte Daten zu benötigen – die key={index} ist HIER AUSNAHMSWEISE unproblematisch, da die Liste NIEMALS neu SORTIERT oder ERWEITERT wird, solange sie SICHTBAR ist.

Die CSS-Animation

.skeleton-line {
  height: 1rem;
  background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
  background-size: 200% 100%;
  animation: skeleton-pulse 1.5s ease-in-out infinite;
}

@keyframes skeleton-pulse {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

In der Projektliste verwenden

function ProjectListPage() {
  const { data, isPending, isError, error } = useProjects();

  if (isPending) {
    return <ProjectListSkeleton />;
  }

  // ... Rest unverändert
}

EIN Zeilen-Austausch GEGENÜBER Kapitel 75 – isPending BLEIBT die STEUERNDE Bedingung, NUR das ANGEZEIGTE Element ändert sich, von SCHLICHTEM Text zu einer STRUKTURELL passenden Vorschau.

Wann sich Skeletons lohnen

  • Bei Ladezeiten über ETWA 300-500ms – DARUNTER wirkt JEDES Ladeelement eher STÖRENDER als hilfreich.
  • Wenn die ZIELSTRUKTUR des Inhalts BEKANNT ist (Liste, Karte, Tabelle) – für VÖLLIG unvorhersehbare Layouts bleibt ein einfacher Spinner die PRAGMATISCHERE Wahl.

Tipp: TanStack Querys staleTime (Kapitel 73) sorgt DAFÜR, dass Skeletons NUR beim ALLERERSTEN Laden erscheinen – EIN erneuter Besuch der Seite INNERHALB der staleTime zeigt SOFORT die gecachten Daten, OHNE erneutes Aufblitzen des Skeletons.