Angular2入门教程之模块和组件详解
发布时间 - 2026-01-11 01:28:52 点击率:次本文呢主要给大家介绍的关于Angular2模块和组件的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

一、初步了解模块和组件
之前给大家介绍了构建工程,这篇文章简单讲述一下Angular2中的模块和组件。
app文件夹下有五个文件,其中,app.component.spec.ts应该是和模块测试有关的文件,目前不用管它。剩下的四个文件就是典型的模块+组件的文件组成模式。
Angular2应用由模块和组件构成,每个模块这样明明name.module.ts,组件则是name.component.ts。
这几个文件的关系是从属关系:
|--app.module.ts(模块) |--app.component.ts(组件) |--app.component.html(HTML模板) |--app.component.css(CSS样式表)
一个模块可以有多个组件,一个组件也可以有多个样式表,但只有一个HTML模板。
1.1组件的含义
Angular2中的组件,就是我们自定义的一段HTML代码,给他取个名字,就可以当作HTML的标签使用了。假如组件的名字是my-app,那么就可以这样使用:
<div> <my-app><my-app>//可以像原生标签一样添加属性,而且组件能接收的属性更丰富 //标签里面也可以放内容 </div>
组件其实是一个类,它定义了一系列方法和属性,并且把HTML模板封装起来。它的意义是,你可以把它当做一个独立的隔离的盒子,并利用其中的方法和属性进行盒子内部的操作,以及和外界的父组件、兄弟组件交互。
1.2模块的含义
模块就是将一系列的组件还有指令、服务整合封装到一起,提供一个完整的功能。模块可以被外部模块引用。
二、模块详解和根模块
2.1 根模块
每个应用会有一个根模块,按照约定,它的类名叫做AppModule,被放在app.module.ts文件中。应用启动时,就会加载这个模块。
每个根模块会有一个根组件,默认就是app.component.ts,名字是app-root。
查看项目目录中的index.html,会发现有<app-root>Loading...</app-root>这样的代码,就是在加载这个根模块。
2.2 模块详解
下面是app.module.ts的代码。
import { BrowserModule } from '@angular/platform-browser';//每个在浏览器中运行
//的应用的根模块都需要引入BrowserModule
import { NgModule } from '@angular/core';//每个模块都需要引入的核心库中的NgModule
import { FormsModule } from '@angular/forms';//表单模块,在应用中使用表单时引入
import { HttpModule } from '@angular/http';//http模块,当需要进行http远程请求时引入
import { AppComponent } from './app.component';//自己创建的组件
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Angular2用TypeScript组织代码的方式大致就像这个文件一样。
1、在顶部使用import语句,导入模块或者组件需要使用的外部模块。
在模块中需要使用自己创建的组件或者其他服务、指令,也需要import。
2、import语句之后,使用@NgModule()语句描述本模块的元数据。
- declarations:声明属于本模块的组件,每个组件必须在且仅在一个模块中声明。
- imports:引入买本模块中用到的模块,该模块是处于import语句引入的模块中。
- providers:声明模块中使用的服务的提供者,暂时还没有用到。
- bootstrap:根模块中的引导组件,应用启动过程中,会创建这个数组中的组件并插入到HTML中,一般只有一个引导组件。
3、最后,使用export语句,创建模块的类并暴露出去。
模块、组件只有暴露出去,其他的模块才能引用。
三、组件详解
import { Component } from '@angular/core'; //所有组件必须引入
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works! 你已经完成了第一步';
}
1、import语句导入需要的模块。
2、使用@Component()来描述本组件的元数据。
- selector:创建的组件的名字,就像HTML标签的名字一样
- templateUrl: HTML模板,使用相对路径,./表示这个组件文件所在的当前目录,
- styleUrls:HTML模板使用的样式表,可以有多个。
3、最后,使用export创建组件的类并暴露出去。在类中,可以创建属性和方法。
四、应用启动过程
整个应用的启动流程:加载根模块,加载所需的其他模块,创建引导组件,显示组件内容。
注意:我觉得学习Angular2很好的方法之一就是去看官方教程,有中文版的,很方便。看完前面的开发指南部分就足以了解Angular2的大致原理了,当然官方教程有的地方概念可能很模糊,有地方不了解的同学,可以留言交流,谢谢大家对的支持。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助。
# angular2
# 组件
# angularjs2
# 模块
# Angular2开发——组件规划篇
# Angular入口组件(entry component)与声明式组件的区别详解
# 多个
# 加载
# 会有
# 就像
# 样式表
# 给大家
# 这篇文章
# 表单
# 就可以
# 是一个
# 就会
# 还没有
# 很好
# 好了
# 放在
# 相关内容
# 我觉得
# 你可以
# 给他
# 则是
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
如何用景安虚拟主机手机版绑定域名建站?
Bootstrap整体框架之JavaScript插件架构
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
详解vue.js组件化开发实践
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Laravel如何使用Livewire构建动态组件?(入门代码)
如何在景安云服务器上绑定域名并配置虚拟主机?
JavaScript如何实现音频处理_Web Audio API如何工作?
网站制作免费,什么网站能看正片电影?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Swift中swift中的switch 语句
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
微信小程序 HTTPS报错整理常见问题及解决方案
iOS正则表达式验证手机号、邮箱、身份证号等
使用C语言编写圣诞表白程序
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
网页设计与网站制作内容,怎样注册网站?
如何快速搭建自助建站会员专属系统?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
企业网站制作这些问题要关注
如何在万网开始建站?分步指南解析
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
在线制作视频网站免费,都有哪些好的动漫网站?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
C++时间戳转换成日期时间的步骤和示例代码
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
制作公司内部网站有哪些,内网如何建网站?
黑客入侵网站服务器的常见手法有哪些?
EditPlus中的正则表达式实战(5)
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
php 三元运算符实例详细介绍
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
JavaScript如何实现倒计时_时间函数如何精确控制
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
js实现获取鼠标当前的位置
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
php结合redis实现高并发下的抢购、秒杀功能的实例
网站制作软件免费下载安装,有哪些免费下载的软件网站?
JS弹性运动实现方法分析
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】

