Zu vermeidende Anti-Muster

Die meisten Fehler entstehen, wenn imperative und deklarative Modelle vermischt werden. Halten Sie eine klare Zustandsgrenze ein.

push/pop mit Seiten vermischen

Rufen Sie `Navigator.push`/`pop` nicht für Stacks auf, die bereits von `List<PageEntry>` gesteuert werden.

Widget im Zustand

Legen Sie keine `Widget`-Instanzen in die Seitenmetadaten. Bewahren Sie nur Schlüssel und routenähnliche Kennungen auf.

Doppelte Schlüssel

Verwenden Sie doppelte `PageEntry.key`-Werte nicht erneut im selben Stack.

Migrations-Checkliste

Verwenden Sie diese Checkliste bei Refactor-Reviews, um die Architektur konsistent zu halten.

Checkliste

Gut vs. schlecht

// Schlecht: imperativen und deklarativen Ansatz für denselben Stack vermischen
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Gut: nur den deklarativen Zustand aktualisieren
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Hinweis zur Prüfung

Halten Sie bei Code-Reviews fest, wer die Stack-Änderungen verantwortet und lehnen Sie Änderungen ab, die denselben Stack über mehrere APIs verändern.