Pages as Data, UI via Resolver

Store only metadata in PageEntry. Use buildPage to map each page key to an actual widget.

قابلِ سیریلائز state

PageEntry سادہ data ہے، اس لیے navigation state کو log، diff، اور replay کیا جا سکتا ہے۔

سادہ resolver

A switch on page.key keeps routing explicit and reviewable.

حقیقت کا ایک ذریعہ

Push and pop are list operations on _pages, not side effects.

ریزولوور پیٹرن

page key کے ذریعے build کریں اور page list کو اعلانیہ طور پر mutate کریں۔

صفحہ حالت کا اصول

Resolver Example

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 into navigation state and keep PageEntry as pure metadata for maintainability.