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
InstallazioneSuccessivo
Resolver