Angular 为什么在模块中声明组件
角度6.x 创建组件时,必须在Angular 为什么在模块中声明组件,angular,Angular,角度6.x 创建组件时,必须在声明部分的特定模块中对其进行分类,如: 乍一看,我认为这可以用来确保其他模块可以通过先导入模块来导入组件 但是我发现一个模块(app.routing.module)可以通过直接导入路径,导入在其他模块(app.module)中创建的组件,就像它根本没有导入app.module: app.routing.module.ts const routes: Routes = [ { path: '', redirectTo: '/dashboard', pathMat
声明
部分的特定模块中对其进行分类,如:
乍一看,我认为这可以用来确保其他模块可以通过先导入模块来导入组件
但是我发现一个模块(app.routing.module
)可以通过直接导入路径
,导入在其他模块(app.module
)中创建的组件,就像它根本没有导入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 }
];
这有什么意义吗
我不知道你为什么否决这篇文章,而我承认这对你来说可能是个愚蠢的问题。但请不要关上它
因为我真的被模块化系统搞糊涂了。由于我在官方示例中找不到必要性。这两种配置完全不同,属于模块的组件应导入模块内。ts。需要在其他模块之间共享的组件应添加到
导出
中
但是,组件需要在routing.module.ts内指定路径,以便在使用不同路径导航应用程序时加载它们。这两种配置完全不同,属于模块的组件应在module.ts内导入。需要在其他模块之间共享的组件应添加到
导出
中
但是,组件需要在routing.module.ts中指定路径,以便在使用不同路径导航应用程序时加载它们。有三件事需要记住
有三件事要记住
app.routing.module
不导入app.module
,但它可以直接使用组件。那么为什么我们必须声明和导出它们所属模块中的组件?它不直接使用组件,您需要再次导入app.routing.module iside app.module.ts。它只是配置了组件路径和路由。你的意思是app.module
导入app.routing.module
所以app.routing.module
可以使用属于app.module
的组件吗?不,你搞错了。我说它不使用组件。如果仔细观察,则不会在app.routing.module内使用或创建任何组件。这正是您所指的路由模块导入
!=<代码>使用?我一直认为组件对于外部模块是不可见的。因此,app.routing.module
如果不首先导入app.module
,则不应访问app.module
中定义的组件。app.routing.module
不导入app.module
,但它可以直接使用组件。那么为什么我们必须声明和导出它们所属模块中的组件?它不直接使用组件,您需要再次导入app.routing.module iside app.module.ts。它只配置了组件路径和路由。你是说app.module
importsapp.routing.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 } ];