После миграции одного из наших PWA с Ionic 3 на Ionic 4 я обнаружил, что маршрутизация полностью изменилась, и вам действительно нужно думать в угловом ключе вместо Ionic 3.
Каждая навигация (вперед иback) запустит жизненный цикл маршрутизатора, что означает, что если у вас есть какие-либо правила защиты и перенаправления, он будет вызван.
ПРИМЕР:
Допустим, у вас есть 3 вкладки «home», «уведомление».' и больше'.Вам нужно, чтобы пользователь видел вкладку home
при загрузке приложения.notification
вкладка содержит много уведомлений, и вы можете перейти к деталям, нажав на нее.Между тем, вы также хотите перейти к одной из деталей уведомления на вкладке home
.
Маршруты в app.routing.ts
const routes: Routes = [
{ path: 'tabs', loadChildren: './pages/tabs/tabs.module#TabsModule' },
{
path: 'notification/:id',
loadChildren: './pages/notification/notification-detail/notification-detail.module#NotificationDetailPageModule'
},
{ path: 'login', loadChildren: './pages/login/login.module#LoginPageModule' },
{ path: '**', pathMatch: 'full', redirectTo: 'tabs/home' }
];
СОВЕТЫ:
Если вы хотите остаться на каждой оставленной вами вкладке, не добавляйте пустое правило перенаправления в tabs.routing.ts
.
Если вы хотите скрыть панель вкладок на подстранице,не добавляйте страницу в tabs
маршруты.
маршруты в tabs.routing.ts
const routes: Routes = [
{
path: '',
component: TabsPage,
children: [
{ path: 'home', children: [{ path: '', component: HomePage }]},
{ path: 'notification', children: [{ path: '', loadChildren: '../notification/notification-list/notification-list.module#NotificationListPageModule' }]},
{ path: 'more', children: [{ path: '', loadChildren: '../more/more-index/more-index.module#MoreIndexPageModule' }]}
]
}];