Angular2笔记(一)--组件及组件树

1.Angular1

这里写图片描述

2.Angular 2特性

这里写图片描述

3.核心概念

这里写图片描述
组件是核心,其他都是组件的延伸


1.组件及组件树



A.组件都有完整的生命周期钩子,使我们清楚知道组件之间状态变化

这里写图片描述
Constructor 构造函数
做一些组建类的初始化工作,例如变量的初始赋值等等,接着会触发OnChanges钩子
不推荐处理和业务逻辑相关的工作
OnChanges
第一次触发,主要用来接收父组件传入的数据,为接下来的组件初始化提供数据支持,然后到了OnInit钩子
OnInit
这才是实际的组件初始化阶段,处理和业务逻辑相关的工作,接下来组件进入稳定期,OnChanges再次触发,只要从输入属性上获得的数据发生变化OnChanges钩子就会触发一次
组件销毁前会触发OnDestory钩子
OnDestory
在这个阶段做一些清理的工作,例如:事件解绑


B.组件示例
这里写图片描述

组件由两个大部分组成:上面的@Compoent和下面的 calss类

  • 下面的class类就是组件类,组件的业务逻辑都在这个类里面编写
  • 上面的@Compoent部分称为装饰器,装饰器里面有一些参数,它们就是angular八大核心里面的元数据,是TS提供的语法特性,用来修饰一个类相当于c++里的头文件
    这里的template~~是一个内联模版,外联模版用templateUrl属性书,如:
templateUrl:"path/to/hello.html"

注意:一个组件只能选取一种方式指定模版


C.数据绑定

  • 插值{{}}
    可以直接使用组件类里面的成员变量 例如上面图片例子里的{{greeting}}
  • 属性绑定[value]
    把组件类的属性传递到组件模版中
    例如:<input [value]="myDate"/>
  • 事件绑定(keyup)
    把模版里产生的数据通过函数调用的方式传递到组建类,也负责组件间的数据通讯
    例如<input (keyup)="handle($event)"/>
  • 双向绑定[(ngModel)]
    实现了数据的双向流动
    例如<input [(ngModel)="myDate"] />


D.组件渲染

元数据里的selector 属性定义了一个hello,这是一个css3选择器,程序运行的时候他能匹配到html里的hello标签,当组件逻辑执行完以后,输出到视图,内容就会填充到<hello></hello>标签里



E.组件树
这里写图片描述
这样Contact就成了ContactList的子组件,父组件要能使用子组件定义的一些元素标签,还需要一个导入的过程,这个导入的过程需要借助模块来实现,关于模块后面介绍
注意:子组件还定义了一个data变量,并且使用@Input()装饰器来修饰,这就是子组件的输入接口,用来接收来自父组件的数据


总结

这里写图片描述

发布了64 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Pandade520/article/details/76178716