Angular 6.x。
创建组件时,您必须在declarations
部分的某个模块中声明它,例如this:
app.module.ts:
declarations: [
AppComponent,
DashboardComponent,
HeroSearchComponent,
HeroesComponent,
HeroDetailComponent,
],
乍一看,我认为这可以用来确保其他模块可以通过先导入模块来导入组件。
但是我发现一个模块(app.routing.module
)可以直接导入app.module
this来导入在其他模块(path
)中创建的组件,但它没有导入app.module
:
app.routing.module.ts
const routes: Routes = [
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent },
{ path: 'detail/:id', component: HeroDetailComponent },
{ path: 'heroes', component: HeroesComponent }
];
这有意义吗?
我不知道你为什么要投票支持这篇文章,而我接受这可能对你来说这是一个愚蠢的问题。但请不要关闭它。
因为我对模块化系统感到困惑。因为我无法在官方例子中找到必要性。
答案 0 :(得分:1)
这两个配置完全不同,属于模块的组件应该在module.ts中导入。需要在其他模块之间共享组件,应在exports
内添加。
但是,组件需要使用routing.module.ts中的路径进行特定,以便在使用不同路径导航应用程序时加载它们。
答案 1 :(得分:0)
要记住三件事。
组件导出类。
可以在任何文件中导入这些导出的类。导入组件类的这些FILES可以是打字稿组件或模块。
模块只不过是一些文件,它们可以让您将所需的组件捆绑在一起,并且将依赖于彼此。 MODULE 应该能够执行其业务逻辑,并且不应该依赖于任何不属于该模块的部分来执行相同的逻辑。