gpt4 book ai didi

Angular 2 路由 - ModuleWithProviders v NgModule

转载 作者:太空狗 更新时间:2023-10-29 17:08:47 27 4
gpt4 key购买 nike

我正在通过 Angular 2 开展一个 MEAN 项目,并正在为我的各个页面设置路由。我见过很多使用 ModuleWithProviders 进行路由的示例,而不是使用 NgModule ( https://angular.io/guide/router ) 的 angular.io 示例

什么是标准的做事方式?如果两者都可以接受,两者之间是否存在性能差异?

ModuleWithProviders 示例:

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

import { AppComponent } from './app.component';
import { AboutComponent } from './about/about.component';
import { ServicesComponent } from './services/services.component';

export const router: Routes = [
{ path: '', redirectTo: 'about', pathMatch: 'full'},
{ path: 'about', component: AboutComponent },
{ path: 'services', component: ServicesComponent }
];

export const routes: ModuleWithProviders = RouterModule.forRoot(router);

NgModule 示例:

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

import { AppComponent } from './app.component';
import { AboutComponent } from './about/about.component';
import { ServicesComponent } from './services/services.component';

export const router: Routes = [
{ path: '', redirectTo: 'about', pathMatch: 'full'},
{ path: 'about', component: AboutComponent },
{ path: 'services', component: ServicesComponent }
];

@NgModule({
imports: [
RouterModule.forRoot( router )
],
exports: [
RouterModule
]
})

export class AppRoutingModule {}

最佳答案

NgModule 和 ModuleWithProviders 是不同的东西。

NgModule 是模块类的装饰器。

ModuleWithProviders is the interface应该由 forRoot 方法返回。 ModuleWithProviders 对象是具有 ngModule 属性的普通对象,该属性包含实际模块类,并在 providers 属性中增加了额外的提供者。

因为 ModuleWithProviders 是一个接口(interface),所以它的使用是可选的。

关于Angular 2 路由 - ModuleWithProviders v NgModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com