angular常用组件,angular组件调用组件方法
本篇文章带大家了解一下有角的中的组件通讯和组件生命周期,简单介绍一下向组件内部传递数据、组件向外部传递数据的方法,希望对大家有所帮助!
组件通讯
1、向组件内部传递数据
app-favorite[is favorite]= true /app-favorite//favorite。组件。分时(同timesharing)
从" @角度/核心"导入{输入};
导出类收藏夹组件{
@ Input()是收藏夹:boolean=false
}【相关教程推荐: 《angular教程》 】
注意:在属性的外面加[] 表示绑定动态值,在组件内接收后是布尔类型,不加[] 表示绑定普通值,在组件内接收后是字符串类型。
app-Favorite[is-Favorite]= true /app-Favorite import { Input } from @ angular/core ;
导出类收藏夹组件{
@ Input( is-Favorite )是Favorite:boolean=false
}2、组件向外部传递数据
需求:在子组件中通过点击按钮将数据传递给父组件
!-子组件模板-
button(click)= onClick() click/button//子组件类
从" @角度/核心"导入{事件发射器,输出}
导出类收藏夹组件{
@ Output()change=新事件发射器()
onClick() {
this.change.emit({ name:张三 })
}
}!-父组件模板-
app-favorite(change)= onChange($ event)/app-favorite//父组件类
导出类AppComponent {
onChange(事件:{ name: string }) {
console.log(事件)
}
}
组件生命周期
1、挂载阶段
挂载阶段的生命周期函数只在挂载阶段执行一次,数据更新时不再执行。
1)、施工人员
有角的在实例化组件类时执行,可以用来接收有角的注入的服务实例对象。
导出类子组件{
构造函数(私有测试:TestService) {
console.log(this.test) //test
}
}2)、恩戈尼特
在首次接收到输入属性值后执行,在此处可以执行请求操作。
应用-子名称=张三/app-childexport类子组件实现OnInit {
@Input(name) name: string=
ngOnInit() {
console.log(this.name) //张三
}
}3)、ngAfterContentInit
当内容投影初始渲染完成后调用。
应用-儿童
div #boxHello Angular/div
/app-childexport类子组件实现AfterContentInit {
@ content子级( box )框:ElementRefHTMLDivElement undefined
ngAfterContentInit() {
控制台。日志(这个。box)//div hello Angular/div
}
}4)、ngAfterViewInit
当组件视图渲染完成后调用。
!-应用程序-儿童组件模板-
p # PAPP-儿童作品/PE export类子组件实现AfterViewInit {
@ view child( p )p:ElementRefHTMLParagraphElement undefined
ngAfterViewInit
控制台。日志(这个。p)//PAPP-子作品/p
}
}2、更新阶段
1)、ngOnChanges
当输入属性值发生变化时执行,初始设置时也会执行一次,顺序优于恩戈尼特
不论多少输入属性同时变化,钩子函数只会执行一次,变化的值会同时存储在参数中
参数类型为简单的改变,子属性类型为简单改变
对于基本数据类型来说,只要值发生变化就可以被检测到
对于引用数据类型来说,可以检测从一个对象变成另一个对象,但是检测不到同一个对象中属性值的变化,但是不影响组件模板更新数据。
基本数据类型值变化
app-child[name]= name [age]= age /app-child
按钮(点击)= change()更改/按钮导出类AppComponent {
name: string=张三;
年龄:数量=20
更改(){
this.name=李四
这个年龄=30岁
}
}导出类子组件实现在线更改{
@Input(name) name: string=
@Input(age) age: number=0
ngOnChanges(更改:简单更改){
console.log(基本数据类型值变化可以被检测到)
}
}引用数据类型变化
app-child[person]= person /app-child
按钮(点击)= change()更改/按钮导出类AppComponent {
person={ name:张三,年龄:20 }
更改(){
this.person={ name:李四,年龄:30 }
}
}导出类子组件实现在线更改{
@Input(person) person={ name: ,年龄:0 }
ngOnChanges(更改:简单更改){
Console.log(对于引用数据类型,只能检测引用地址的变化,不能检测对象属性的变化)
}
}2)、ngDoCheck:主要用于调试。每当输入属性发生变化,无论是基本数据类型、引用数据类型还是引用数据类型中的属性变化,都会被执行。
3) ngAfterContentChecked:内容投影更新完成后执行。
4)、ngAfterViewChecked:组件视图更新完成后。
3、卸载阶段
1)、ngOnDestroy
在组件因清理操作而被销毁之前调用。
导出类HomeComponent实现OnDestroy {
ngOnDestroy() {
Console.log(“组件已卸载”)
}
}更多编程知识请访问:编程视频!以上是角学习中组件通信和组件生命周期的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。