angular常用组件,angular组件调用组件方法

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: