首先把目光聚焦在app这个文件夹里面

1.app.module.ts 这个文件是angular根模块,告诉Angular如何组装应用

// 浏览器解析的模块
import { BrowserModule } from '@angular/platform-browser';
// Angular核心模块
import { NgModule } from '@angular/core';
// 根组件
import { AppComponent } from './app.component'; // NgModule装饰器 @NgModule接收一个元数据(类似一个方法)对象,告诉Angular如何编译和启动应用
@NgModule({
declarations: [ /*配置当前项目运行地组件*/
AppComponent // 如果在这里引入组件后在这里
],
// 配置当前模块运行依赖地其他模块
imports: [
BrowserModule
],
// 配置项目所需地服务
providers: [],
// 指定应用地主视图(成为根组件) 通过引导根AppModule来启动应用,这里一般写根组件
bootstrap: [AppComponent]
})
// 根模块不需要导出任何东西,因为其他组件不需要导入跟模块
export class AppModule { }
 

2.app.component.ts 文件 这个文件相当于一个类

// 引用核心模块里面地Component
import { Component } from '@angular/core'; //这是一个装饰器
@Component({
// 使用这个组件地名称
selector: 'app-root',
// html
templateUrl: './app.component.html',
// css
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor() {
// 构造函数
}
}

3. app.component.html  根组件

  这个是根组件,用于装配页面

开始创建组件

  1.按ctrl+`调出控制台

    mkdir src/app/components

    ng g component components/header

  

   当你看到这个的时候,注意最后一更,这里已经修改了app.module.ts

  2.打开文件夹components/header/  可以看到文件

    

  3.打开header.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
selector: 'app-header', // 这个是转换为标签组件名称
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})
export class HeaderComponent implements OnInit { constructor() { } ngOnInit() {
} }

  4.app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core'; import { AppComponent } from './app.component';
// 当使用命令ng g component components/header 文件时,这里将会将会自动导入到这里
import { HeaderComponent } from './components/header/header.component'; // 装饰器 @NgModule接收一个元数据(类似一个方法)对象
@NgModule({
declarations: [
AppComponent,
HeaderComponent // 其次,命令自动将响应的模块导入
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

5.修改header.component.html  

<p>
我证明,这里组件生效了
<br/>
header works!
</p>

6.修改app.component.html

<!-- 将响应的组件名称,加上app写成html标签 <app-header></app-header> -->
<app-header></app-header>

7.运行 ng serve --open

由此,第一个组件已经完成了。接下来添加第二个组件,证明这家伙就是由组件完成的。

重复执行上面创建组件的步骤,然后修改成这样

运行程序

由此可见,调用组件使用<app-标签名>即可随意组合,这有点像asp.net core的mvc的partial标签

二、初级绑定数据

  在相应的header.component.ts文件的类中添加属性title

  

  然后在相应的页面中使用{{Title}}调用

  

  然后

    

添加组件,和简单的绑定数据到此就结束了。

其实这里可以看到,每个不同的组件组成了页面,这些组件可以复用,可以随意组合。配合typescript更是适合开发大型的项目

初探Angular_02 感受添加组件的更多相关文章

  1. Angular使用总结 --- 通过指令动态添加组件

    之前自己写的公共组件,都是会先引入,需要调起的时候再通过service控制公共组件状态.值.回调函数什么的.但是有一些场景不适合这种方式,还是动态添加组件更加好.通过写过的一个小组件来总结下. 创建组 ...

  2. 在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中

    BorderLayout是Window.Frame和Dialog的默认布局管理器,其将容器分成North.South.East.West和Center 5个区域,每个区域只能放置一个组件. 在使用ad ...

  3. Elementui tabs组件内添加组件

    1. Elementui tabs组件内添加组件 1.1. 需求 今天的一个需求是在后台框架的基础上添加tab页,结果页面如下 原本上述红框内的内容是不存在的,直接点击左侧菜单栏进行页面跳转,现加了t ...

  4. SpringBoot系列之Spring容器添加组件方式

    SpringBoot系列之Spring容器添加组件方式 本博客介绍SpringBoot项目中将组件添加到Spring容器中的方法,SpringBoot项目有一个很明显的优点,就是不需要再编写xml配置 ...

  5. 六、spring之通过FactoryBean为ioc容器中添加组件

    前面我们已经介绍了几种为容器中添加组件的方法,今天一起学习通过FactoryBean添加组件的方法. 首先我们准备一个类,也就是我们需要注册进spring的ioc容器中的类 类Color: // 不必 ...

  6. easyui 动态添加组件 要重新渲染

    做项目时动态添加组件是常有的事,easyui动态添加组件时样式会失效,这是因为这个组件没有经过 easyui的解析器解析, 比如:   <pre name="code" cl ...

  7. Unity Event Trigger 事件响应(二维,三维)添加组件

    EventTrigger 上主要的方法有PointerEnter.PointerExit.PointerDown.PointerUp.PointerClick............都会显示在面板上面 ...

  8. 【HarmonyOS】【Demo】【JAVA UI】 鸿蒙怎么在Webview上添加组件

    在大家HarmonyOS开发中,Webview组件上添加组件可能是很常见的功能了,HarmonyOS的webview和Android的webwiew存在一点点区别,今天来实现这个功能 使用项目布局显示 ...

  9. 【转】Unity中添加组件的几种方法

    http://blog.csdn.net/monzart7an/article/details/23199647 一.在编辑器上面添加一个组件.这个不用多说. 二.在脚本中利用AddComponent ...

随机推荐

  1. Sorting(好题)

    Sorting https://www.zhixincode.com/contest/21/problem/I?problem_id=324 题目描述 你有一个数列a_1, a_2, \dots, a ...

  2. 未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项

    对于这个问题,网上的解答都大同小异,最多的就是Bin文件夹下没有dll文件,引用路径问题.但我碰到的问题偏偏不是这个,而是没有一个人给出方法的问题.其实问题很简单,也很低级:IIS上发布网站的时候把整 ...

  3. 84直方图最大矩形覆盖 · Largest Rectangle in Histogram

    [抄题]: Given n non-negative integers representing the histogram's bar height where the width of each ...

  4. OC 单例实现

    2. 在.h 文件遵循 <NSCopying,NSMutabalecopying> 3.定义宏,实现任意类型单单例 #define SingleH(name) +(instancetype ...

  5. nginx accept() failed (24: Too many open files)

    nginx服务器出现如下信息: [crit] 17221#0: accept4() failed (24: Too many open files) [crit] 17221#0: accept4() ...

  6. springmvc与struts2的不同

    1.springmv的入口是一个servlet,即前端控制器.而struts2入口是一个fliter过滤器. 2.springmvc是基于开发方法(一个url对应一个方法,通过注解的方式进行访问),请 ...

  7. 数据库日志文件——数据库“xxx”的事务日志已满,原因为“LOG_BACKUP”

    治标的方案: 参考网址:http://blog.csdn.net/tianlianchao1982/article/details/7388616 http://bbs.51cto.com/threa ...

  8. 并发编程(二)concurrent 工具类

    并发编程(二)concurrent 工具类 一.CountDownLatch 经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作. import java.util.concurren ...

  9. 用个体软件过程(PSP)记录你的工作

    用个体软件过程(PSP)记录你的工作 首先,非常感谢大家对本门课程的学习所投入的时间和精力. 其次,已经进入数据时代,口说无凭,拿数据来.如果你认为你已经投入了大量精力在这门课程的学习和作业中,而且已 ...

  10. 开始Java之旅

      从今天起,cgg将给大家讲讲Java这种神奇的东西.   至于配置环境变量,大家可以看看我的博客:环境变量上面有详细解释.   下面先给大家一个公式:    public class [文件名]{ ...