Angular最新教程-第五节编写第一个组件

简介: Angular最新教程-第五节编写第一个组件

讲了四节了,一行代码都没有敲,虽说磨刀不误砍柴工,但我们也是时候,上场砍点啥啦。
今天我们就来编写我们的第一个组件,效果图如下。

image.png

首先我们使用angular-cli的generate命令来帮我们自动化创建组件。
$ ng generate component site_status

image.png

通过分析效果图我们知道了我们有8个数据需要绑定到页面上。
我们先打开src\app\site-status\site-status.component.html

image.png

编写我们需要的页面元素。并绑定数据变量。
在ng1中,js我们大概会这么写。

var siteStatus  = {
        users:'14978',
        visitors:'20930244',
        articles:'2538',
        comments:'8075',
        maxOnlineNum:'291',
        maxOnlineTime:'17-04-25 17:23',
        onlineNum:'144',
        onlineUsers:'2'
    };

但是在typescript中,要使用变量要先声明变量类型。
所以我们在src\app\site-status\site-status.component.ts中要先编写

siteStatus:{
    users:string,
    visitors:string,
    articles:string,
    comments:string,
    maxOnlineNum:string,
    maxOnlineTime:string,
    onlineNum:string,
    onlineUsers:string
  };

声明siteStatus是一个对象,里面的属性也要声明类型。
然后在之后的函数中再给这个对象赋值。
当你不太确定属性类型时,你可以使用any。
当一个变量类型被声明成any时,他可以接受任意类型的数据,
有点类似var声明。


这节课我们先不讲解http请求这部分内容。
所以我们这里在构造函数中给这个变量赋值。
完整代码如下:

image.png

我们保存运行一下。(调试方法参照前几节课)
我们发现,运行界面并没有我们编写的这个组件,
因为我们还没有在项目中使用到这个组件。


这句话有点废话。但是我们可以明白一个事情,
我们编写过程只是一个声明过程,
在未被使用的时候,系统不会去加载运行他们。
后续使用打包优化的时候,没有使用到的组件,
都不会被打进发布包里面,保证了网站的整体较小。
这在后续章节中讲解。


这里我们在打开src\app\app.component.html,在这里面使用我们新定义的组件。

image.png

保存。

image.png


这时候就有了我们编写的内容了。但是效果和效果图不太一样,
所以我们给这个界面加入一些样式。


我们打开app\site-status\site-status.component.ts组件的ts文件,查看,
该组件关联的样式文件是
'./site-status.component.css' 在里面加入我们想要的样式。

image.png

加入样式之后(详细样式文件请查看源码),如下。

image.png

基本符合效果图了,但是在标题左侧还少了一个小图标。
所以我们到阿里巴巴矢量图库去下一个”仪表盘”的图标,
放到assets文件夹中,这个文件夹里面的文件会被一起打包的。
把图标加到html中并加上样式,完成和效果图一样的效果。

image.png


文中图标来自:http://www.iconfont.cn/search/index?searchType=icon&q=%E4%BB%AA%E8%A1%A8%E7%9B%98
效果图来自:
http://www.angularjs.cn/

源代码:百度云 链接:http://pan.baidu.com/s/1i5pFlXz 密码:o1qw
码云:
https://gitee.com/xiaohuOni/oniplan-ng


有码云的帮忙给个star,感谢。

这节课的内容就到这里完成了。
感谢您的阅读。
我是莽夫,希望你开心。

目录
相关文章
|
22天前
|
JavaScript
Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)
Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)
|
4月前
|
前端开发 JavaScript
Angular 组件模版代码里使用 ngIf 进行条件渲染的例子
Angular 组件模版代码里使用 ngIf 进行条件渲染的例子
22 0
|
5月前
Angular多个页面引入同一个组件报错The Component ‘MyComponentComponent‘ is declared by more than one NgModule怎么办?
Angular多个页面引入同一个组件报错The Component ‘MyComponentComponent‘ is declared by more than one NgModule怎么办?
|
5月前
快速创建Angular组件并定义传参、绑定自定义事件的方法
快速创建Angular组件并定义传参、绑定自定义事件的方法
|
9月前
|
JavaScript 定位技术
Angular1.x入门级自定义组件(导航条)
Angular1.x入门级自定义组件(导航条)
|
资源调度 JavaScript 容器
Angular封装WangEditor富文本组件
Angular封装WangEditor富文本组件
205 0
|
资源调度 前端开发 Java
使用Angular CDK实现一个Service弹出Toast组件
使用Angular CDK实现一个Service弹出Toast组件
88 0
|
JavaScript 前端开发 API
让Angular自定义组件支持form表单验证
让Angular自定义组件支持form表单验证
115 0
Angular组件传参
Input 是属性装饰器,用来定义组件内的输入属性。在实际应用场合,我们主要用来实现父组件向子组件传递数据。Angular 应用是由各式各样的组件组成,当应用启动时,Angular 会从根组件开始启动,并解析整棵组件树,数据由上而下流下下一级子组件。
|
资源调度
angular使用ngx-vant组件库
angular使用ngx-vant组件库

热门文章

最新文章