将Angular组件导入模块

时间:2017-03-22 18:01:29

标签: angular angular2-routing

我最近开始玩角度2,发现它真的很棒。然而,我发现自己在做重复的事情,比如在任何地方导入所有类型的组件。

我有以下代码:

/************** my.module.ts **************/
import { MyRoutingModule } from './my-routes.module';

// these imports are done twice
import { FirstComponent } from 'components/first.component';
import { SecondComponent } from 'components/second.component';
import { ThirdComponent } from 'components/third.component';
...

@NgModule({
    ...
    imports: [ MyRoutingModule ],
    declarations: [
        FirstComponent, SecondComponent, ThirdComponent 
    ]
})
export class MyModule { }


/************** my-routes.module.ts **************/
import { FirstComponent } from 'components/first.component';
import { SecondComponent } from 'components/second.component';
import { ThirdComponent } from 'components/third.component';

const routes: Routes = [
    { path: 'first', component: FirstComponent },
    { path: 'second', component: SecondComponent },
    { path: 'third', component: ThirdComponent },
    ...
];

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

我有相当多的组件需要导入两次,在路由模块和模块本身中,前者用于声明输入,后者用于计数目的。

我知道我可以拥有一个共享模块,可以导出我所有的常用组件,然后将该模块导入到我需要的地方,这很好。我知道这种方法是为了避免在任何地方重新导入相同的组件,但为了路由,我需要在同一个文件中完成导入,以便可以识别和使用组件类。

这是一个更好的方法吗?

0 个答案:

没有答案