angular7中自定义模块实现路由的懒加载

本文详细介绍了如何在Angular项目中创建并配置带路由的自定义模块,包括用户模块、文章模块和商品模块的设置,以及子模块中子路由的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建带路由的模块
  • ng g module modules/user --routing 创建带路由的自定义模块user

  • ng g c modules/user 创建自定义路由user的根组件

在这里插入图片描述

配置路由

user-routing.module.ts

import { UserComponent } from './user.component';

const routes: Routes = [
    {
        path: '',
        component: UserComponent
    }
];

app.component.html

<a [routerLink]="[ '/user' ]">用户模块</a>
<a [routerLink]="[ '/article' ]">文章模块</a>
<a [routerLink]="[ '/product' ]">商品模块</a>

<hr>

<router-outlet></router-outlet>

app-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
    {
        path: 'user', loadChildren: './modules/user/user.module#UserModule'
    },
    {
        path: 'article', loadChildren: './modules/article/article.module#ArticleModule'
    },
    {
        path: 'product', loadChildren: './modules/product/product.module#ProductModule'
    }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

子模块中配置子路由

在这里插入图片描述

user.component.html

<a [routerLink]="[ '/user/profile' ]">子路由profile</a>
<a [routerLink]="[ '/user/address' ]">子路由address</a>

<router-outlet></router-outlet>

user-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { UserComponent } from './user.component';
import { ProfileComponent } from './components/profile/profile.component';
import { AddressComponent } from './components/address/address.component';

const routes: Routes = [
    {
        path: '',
        component: UserComponent,
        children: [
            {
                path: 'profile',
                component: ProfileComponent
            },
            {
                path: 'address',
                component: AddressComponent
            },
            {
                path: '**',
                redirectTo: 'profile'
            }
        ]
    }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class UserRoutingModule { }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值