Pages kama Data, UI kupitia Resolver

Hifadhi metadata pekee ndani ya PageEntry. Tumia buildPage kuoanisha kila page key na widget halisi.

State inayoweza kusafirishwa

PageEntry ni data tupu, hivyo hali ya urambazaji inaweza kuwekwa kwenye logi, kulinganishwa, na kurudiwa.

Resolver rahisi

switch kwenye page.key huweka routing kuwa wazi na rahisi kukaguliwa.

Chanzo kimoja cha ukweli

Push na pop ni operesheni za orodha juu ya _pages, si athari za pembeni.

Muundo wa Resolver

Jenga kwa page key na ubadilishe orodha ya kurasa kwa njia ya declarative.

Sera ya hali ya kurasa

Mfano wa 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')]);
}
Weka Metadata Nyepesi

Epuka kuweka instances za Widget ndani ya hali ya urambazaji na udumishe PageEntry kama metadata safi kwa urahisi wa matengenezo.

Iliyotangulia

Usakinishaji

Ifuatayo

Overlays