Faqet si të dhëna, UI përmes zgjidhësit

Ruaj vetëm metadatat në PageEntry. Përdor buildPage për ta mapuar çdo çelës faqeje në widget-in real.

Gjendje e serializueshme

PageEntry është të dhënë e thjeshtë, ndaj gjendja e navigimit mund të regjistrohet, krahasohet dhe riprodhohet.

Zgjidhës i thjeshtë

Një switch mbi page.key e mban routimin të qartë dhe të rishikueshëm.

Një burim i vetëm i së vërtetës

Push dhe pop janë operacione liste mbi _pages, jo efekte anësore.

Modeli i zgjidhësit

Ndërto sipas çelësit të faqes dhe ndrysho listën e faqeve në mënyrë deklarative.

Rregulli i gjendjes së faqeve

Shembull i zgjidhësit

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')]);
}
Mbaji metadatat të lehta

Shmang vendosjen e instancave Widget brenda gjendjes së navigimit dhe mbaje PageEntry si metadata të pastra për mirëmbajtje më të lehtë.

E mëparshmja

Instalimi