পেজকে ডেটা হিসেবে, UI রিজলভারের মাধ্যমে

PageEntry-এ শুধু metadata রাখুন। প্রতিটি page key-কে বাস্তব widget-এর সঙ্গে ম্যাপ করতে buildPage ব্যবহার করুন।

সিরিয়ালাইজযোগ্য স্টেট

PageEntry শুধু সাধারণ ডেটা রাখে, তাই নেভিগেশন স্টেট লগ করা, diff করা, এবং replay করা যায়।

সহজ রিজলভার

page.key-এর উপর switch ব্যবহার করলে রাউটিং স্পষ্ট ও পর্যালোচনাযোগ্য থাকে।

একক সত্যের উৎস

Push আর pop হলো _pages-এর list operation, কোনো পার্শ্বপ্রতিক্রিয়া নয়।

রিজলভার প্যাটার্ন

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')]);
}
মেটাডেটা হালকা রাখুন

নেভিগেশন স্টেটের মধ্যে Widget ইনস্ট্যান্স রাখবেন না, এবং রক্ষণাবেক্ষণের সুবিধার জন্য PageEntry-কে কেবল মেটাডেটা হিসেবে রাখুন।

পূর্ববর্তী

ইনস্টলেশন

পরবর্তী

ট্যাব