Te vermijden anti-patronen

De meeste bugs ontstaan wanneer imperatieve en declaratieve modellen door elkaar worden gehaald. Houd een strikte grens voor state aan.

push/pop mengen met pagina's

Roep Navigator.push/pop niet aan voor stacks die al door List<PageEntry> worden beheerd.

Widget in de state

Zet geen Widget-instanties in paginametadata. Houd alleen keys en route-achtige identifiers aan.

Onbegrensde keys

Hergebruik geen dubbele PageEntry.key-waarden in dezelfde stack.

Migratiechecklist

Gebruik deze checklist tijdens refactor-reviews om de architectuur consistent te houden.

Checklist

Goed vs. slecht

// Slecht: imperatieve en declaratieve aansturing voor dezelfde stack mengen
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Goed: werk alleen de declaratieve state bij
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Reviewtip

Volg tijdens code review wie de stack-mutaties beheert en wijs wijzigingen af die dezelfde stack via meerdere API's muteren.