angular 新开一个页签 路由配置

不得不说这路由配置对比vue真是相当麻烦,第一次写,研究了好久,最后终于看懂了

首先是最外层的module里面需要配置路由
代码就写下路由核心的,杂毛代码都删了
可以看到,核心逻辑是import路由配置AppRoutingModuleNgModule里面的imports里面,然后providers里面引用了angular自带的路由相关的东西,这里就先不去了解干啥用的了

在这里插入图片描述

app.module.ts

import { HashLocationStrategy, LocationStrategy } from '@angular/common';
import { AppRoutingModule } from './app-routing.module';

@NgModule({
  declarations: [],
  imports: [
    AppRoutingModule,
  ],
  providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy },
    {
      provide: ``,
      useValue: ``
    }
  ],
  bootstrap: []
})
export class AppModule {
  constructor() {
  }
}

下面就是路由具体配置文件了
app-routing.module.ts

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

const routes: Routes = [
  {
    path: 'xxx1',
    loadChildren: () => import('./pages/xxx1-template.module').then(mod => mod.xxx1TemplateModule),
    canActivate: []
  },
  {
    path: 'xxx2',
    loadChildren: () => import('./pages/xxx2-pattern.module').then(mod => mod.xxx2PatternModule),
    canActivate: []
  },
];

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

下面说下xxx1TemplateModule这个组件要怎么写
在这里插入图片描述
需要配置一个routing和module文件

module文件就是app-routing.module.ts里面引用的mod.xxx1TemplateModule
然后文件里面引入了xxx1TemplateContainerComponent 也就是这个组件本身,还引入了xxx1TemplateContainerRoutingModule 也就是组件路由文件
module:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { xxx1TemplateContainerComponent } from './xxx1-template-container.component';
import { RouterModule } from '@angular/router';
import { xxx1TemplateContainerRoutingModule } from './xxx1-template-container-routing.module';

@NgModule({
  imports: [CommonModule, RouterModule, AttackTemplateContainerRoutingModule],
  declarations: [AttackTemplateContainerComponent]
})
export class xxx1TemplateModule{}

routing:路由文件引入每个tab所对应界面的组件

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { xxx1TemplateListComponent } from '../xxx1-template-list/xxx1-template-list.component';
// 其他的引入组件不写了

const routes: Routes = [
  {
    path: '',
    component: xxx1TemplateListComponent ,
    children: [
      {
        path: 'tab1',
        component: tab1TemplateListComponent,
        children: [
          {
            path: 'tab1-item1',
            component: item1TemplateListComponent
          },
          {
            path: 'tab1-item2',
            component: item2AttackTemplateListComponent
          }
        ]
      },
    ]
  }
];

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular 路由Angular 框架提供的一种机制,用于管理应用程序中不同面之间的导航。它允许你在应用程序中定义不同的路由,每个路由对应一个特定的组件或模块。 要使用 Angular 路由,首先需要在应用程序的根模块中导入 `RouterModule` 并将其添加到 `imports` 数组中。然后,在定义路由之前,你需要创建一个包含路由配置的模块。 路由配置模块可以包含以下内容: - 导入 `RouterModule` 并使用 `forRoot` 方法来配置路由。 - 使用 `Routes` 类定义一个路由数组,其中每个路由对象都包含路径和组件的映射关系。 - 将路由数组传递给 `RouterModule.forRoot()` 方法。 例如,以下是一个简单的路由配置示例: ```typescript import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { HomeComponent } from './home.component'; import { AboutComponent } from './about.component'; const routes: Routes = [ { path: '', component: HomeComponent }, { path: 'about', component: AboutComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { } ``` 在上面的示例中,我们定义了两个路由。路径为空时,将加载 `HomeComponent` 组件,而路径为 'about' 时,将加载 `AboutComponent` 组件。 最后,你可以在应用程序的模板中使用 `<router-outlet></router-outlet>` 标来显示当前路由所对应的组件。 这只是 Angular 路由的基本概念,你还可以通过配置更多选项来实现更复杂的路由功能,如路由参数、子路由路由守卫等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值