डेटा म्हणून पाने, UI रिजॉल्वरद्वारे
PageEntry मध्ये फक्त metadata ठेवा. प्रत्येक page key ला प्रत्यक्ष widget शी जोडण्यासाठी buildPage वापरा.
Serialize करता येणारी स्थिती
PageEntry साधा डेटा आहे, त्यामुळे नेव्हिगेशन स्थिती लॉग, diff आणि replay करता येते.
सोपे रिजॉल्वर
page.key वरचा switch routing स्पष्ट आणि review करण्याजोगा ठेवतो.
एकच सत्य स्रोत
Push आणि pop या _pages यादीवरील क्रिया आहेत; त्या side effects नाहीत.
रिजॉल्वर पॅटर्न
page key नुसार build करा आणि page list डिक्लेरेटिव्ह पद्धतीने बदला.
पृष्ठ स्थितीचा नियम
रिजॉल्वर उदाहरण
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')]);
}
Metadata हलकी ठेवा
नेव्हिगेशन स्थितीत Widget instances ठेवणे टाळा आणि देखभालीसाठी PageEntry शुद्ध metadata म्हणून ठेवा.
मागील
इंस्टॉलेशनपुढे
ओव्हरले