Pagine come dati, UI tramite resolver

Salva solo i metadati in PageEntry. Usa buildPage per associare ogni chiave di pagina a un widget reale.

Stato serializzabile

PageEntry è solo dati, quindi lo stato di navigazione si può registrare, confrontare e riprodurre.

Resolver semplice

Uno switch su page.key mantiene il routing esplicito e verificabile.

Unica fonte di verità

Push e pop sono operazioni sulla lista _pages, non effetti collaterali.

Pattern del resolver

Costruisci in base alla chiave di pagina e modifica l’elenco delle pagine in modo dichiarativo.

Comando

Esempio di resolver

Widget _buildPage(BuildContext context, PageEntry page) {
  switch (page.key) {
    case 'home':
      return HomePage(onGoDetail: _goDetail);
    case 'detail':
      return const DetailPage();
    default:
      return const SizedBox.shrink();
  }
}

void _goDetail() {
  setState(() => _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')]);
}
Mantieni i metadati leggeri

Evita di inserire le istanze Widget nello stato di navigazione e mantieni PageEntry come metadato puro per la manutenibilità.

Precedente

Installazione

Successivo

Resolver