创建组件

项目目录或 app 目录下执行以下命令:

  1. # 在 src/app/components 目录中创建名为 news 的组件
  2. $ ng g component components/news
  3. CREATE src/app/components/news/news.component.html (19 bytes) # HTML 模板
  4. CREATE src/app/components/news/news.component.spec.ts (612 bytes) # 单元测试
  5. CREATE src/app/components/news/news.component.ts (268 bytes) # 定义逻辑
  6. CREATE src/app/components/news/news.component.scss (0 bytes) # CSS 样式
  7. UPDATE src/app/app.module.ts (399 bytes)

通过命令创建组件成功后,会自动将该组件引入并配置到根模块 src/app/app.module.ts 当中:

  1. …………
  2. // 引入 news 组件
  3. import { NewsComponent } from './components/news/news.component';
  4. @NgModule({
  5. // 告诉 Angular 哪些组件属于该模块
  6. declarations: [
  7. // 根组件
  8. AppComponent,
  9. // news 组件
  10. NewsComponent
  11. ],
  12. …………
  13. })
  14. export class AppModule { }

在组件中使用其他组件

假设我们要在根组件当中使用 news 组件,只需要在根组件的 HTML 模板(src/app/app.component.html)中标记 news 组件对应的标签即可。

  1. …………
  2. <!-- 为了展示清晰,我们将其他内容注释掉,添加以下内容 -->
  3. <p>app works!</p>
  4. <!-- 标签名为 news 组件(src/app/components/news/news.component.ts)的 @Component.selector 的值 -->
  5. <app-news></app-news>

我们再次运行项目(npm start),即可在网页中看到 news 组件的 HTML 模板(src/app/components/news/news.component.html)的内容。
Snipaste_2021-05-29_13-00-06.png

同理,我们可以创建一个 header 组件并在 news 组件中使用。

  1. 在项目目录或 app 目录下执行此命令创建 header 组件
  2. $ ng g component components/header

通过命令创建组件成功后,会自动将该组件引入并配置到根模块中。
然后我们在 new 组件中使用 header 组件:

  1. <p>news works!</p>
  2. <app-header></app-header>

在项目启动状态下修改源码,项目会自动编译,编译成功后网页会自动刷新,我们就可以看到 app-root 标签下有一个 app-news 标签,其下又有一个 app-header 标签。
Snipaste_2021-05-29_13-17-31.png