在Angular中,路由和参数化路由是两个不同的概念。路由是指导航到不同组件或视图的机制,而参数化路由是指在路由中传递参数的机制。
以下是一个示例,演示如何在Angular中区分路由和参数化路由:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home.component';
import { AboutComponent } from './about.component';
const routes: Routes = [
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在上面的代码中,我们定义了两个基本路由:'home'和'about'。当用户导航到'/home'时,将显示HomeComponent组件,当用户导航到'/about'时,将显示AboutComponent组件。
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ProductComponent } from './product.component';
const routes: Routes = [
{ path: 'product/:id', component: ProductComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在上面的代码中,我们定义了一个参数化路由:'product/:id'。当用户导航到类似'/product/1'这样的URL时,将显示ProductComponent组件,同时将参数'id'设置为1。
product.component.ts:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-product',
template: `
Product Details
Product ID: {{ productId }}
`,
})
export class ProductComponent implements OnInit {
productId: string;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.params.subscribe(params => {
this.productId = params['id'];
});
}
}
在上面的代码中,我们使用ActivatedRoute服务来获取参数'id'的值,并将其显示在模板中。
使用这些示例代码,你就可以在Angular中区分路由和参数化路由了。基本路由用于导航到不同的组件或视图,而参数化路由用于传递参数。