Для организации вложенного роутинга в интернет-магазине на Angular 9 с использованием ng-universal, вам понадобятся несколько шагов.
- Установка и настройка Angular CLI:
- Установите Angular CLI, выполнив следующую команду в командной строке:
npm install -g @angular/cli
- Создайте новый проект Angular с использованием следующей команды:
ng new <project-name>
- Создание основного маршрутизатора:
- В папке
app
создайте новый файлapp-routing.module.ts
- В
app-routing.module.ts
создайте и настройте маршрутизацию для вашего интернет-магазина. Например:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; const routes: Routes = [ { path: '', redirectTo: '/home', pathMatch: 'full' }, { path: 'home', loadChildren: () => import('./home/home.module').then(m => m.HomeModule) }, { path: 'products', loadChildren: () => import('./products/products.module').then(m => m.ProductsModule) }, { path: 'cart', loadChildren: () => import('./cart/cart.module').then(m => m.CartModule) }, // Добавьте здесь другие маршруты для вашего интернет-магазина ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
- Создание модулей для каждой страницы:
- В папке
app
создайте папкуhome
,products
иcart
. - В каждой из этих папок создайте новый модуль с помощью Angular CLI команды
ng generate module <module-name>
- В каждом модуле создайте новый компоненты с помощью Angular CLI команды
ng generate component <component-name>
- Настройка вложенной маршрутизации внутри каждого модуля:
- В каждом модуле создайте файл
routing.module.ts
для вложенной маршрутизации. - В
routing.module.ts
каждого модуля создайте и настройте маршрутизацию для этого модуля. Например, для модуляproducts
:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { ProductsComponent } from './products.component'; import { ProductDetailComponent } from './product-detail.component'; const routes: Routes = [ { path: '', component: ProductsComponent }, { path: 'detail/:id', component: ProductDetailComponent }, ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule] }) export class ProductsRoutingModule { }
- Подключение вложенной маршрутизации в основном маршрутизаторе:
- В каждом модуле импортируйте и добавьте в
imports
соответствующий модуль маршрутизации. Например, вAppRoutingModule
:
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { NotFoundComponent } from './not-found/not-found.component'; const routes: Routes = [ // ... // Добавьте здесь другие маршруты для вашего интернет-магазина // ... { path: '**', component: NotFoundComponent } ]; @NgModule({ imports: [ RouterModule.forRoot(routes), HomeRoutingModule, ProductsRoutingModule, CartRoutingModule, // Импортируйте здесь другие модули маршрутизации для вашего интернет-магазина ], exports: [RouterModule] }) export class AppRoutingModule { }
Это основная структура для организации вложенного роутинга в интернет-магазине на Angular 9 с использованием ng-universal. Конкретные компоненты и маршруты будут зависеть от вашей специфики интернет-магазина. Обратите внимание, что для работы ng-universal необходимо настроить серверный рендеринг Angular. Это выходит за рамки данного ответа, но вы можете найти больше информации в официальной документации Angular.