angular8生命周期,angular周期函数

  angular8生命周期,angular周期函数

  在使用angular进行开发时,不可避免的会触及到生命周期。下面这篇文章将带你谈谈Angular中的生命周期。希望对你有帮助!

  接触过react和vue开发的读者应该对生命周期的概念比较熟悉。在有棱角的发展过程中,我们无法避免。【相关教程推荐:《angular教程》】

  从开始构建到销毁,组件会经历一系列阶段。这是一个生命周期,这些阶段对应于应用程序提供的生命周期挂钩。

  那么,在angular中,这些钩子是什么?了解它们对于你应该在哪里写你的程序是非常重要的。

  在angular中,生命周期的执行顺序如下:

  -constructor[常用,不是钩子函数,但是很重要]

  -ngOnChanges[普通]

  -ngOnInit[通用]

  -恩多切克

  - ngAfterContentInit

  - ngAfterContentChecked

  -ngafterviewit[常用]

  - ngAfterViewChecked

  -ngOnDestroy【常用】为了解释和验证,我们使用angular-cli生成一个演示项目。

  

constructor

  当es6中的类初始化对象时,会立即调用构造函数。

  类别人员{

  构造者(姓名){

  console.log(被调用)

  this.name=name

  }

  }

  让吉米=新人(吉米);Becalled Angular本身的组件导出一个类。当这个组件被更新时,它将获得构造函数中的预设值。

  

ngOnChanges

  当我们有外部参数变化时,我们会执行ngOnChanges,也就是说,当组件中@Input绑定的属性值发生变化时,就会调用它。

  简单来说,当父组件绑定子组件中的元素时,就会触发这个钩子函数,可以多次启动。这总是在下面的ngOnInit中介绍。

  

ngOnInit

  调用此方法时,组件已成功初始化。在第一个ngOnChanges()完成后调用,并且只调用一次。

  //app.component.ts

  导出类AppComponent实现OnInit,OnChanges {

  构造函数(){

  console.log(1。构造者’)

  }

  ngOnChanges() {

  console.log(2。ngOnChanges’)

  }

  ngOnInit() {

  console.log(3。ngOnInit’)

  }

  }打印的信息如下:

  呃?为什么没有在ngOnChanges中打印钩子函数信息?

  如上所述,当需要触发条件@Input的属性值时。我们来修改一下:

  !app.component.html

  差异

  应用演示/应用演示

  /div//app.component.ts

  //在AppComponent类中添加属性

  公共计数:number=0;demo.component.html

  H3 count:{ { count } }/H3//demo . component . ts

  导出类DemoComponent实现OnInit,OnChanges {

  @Input()

  公开计数:数字;

  构造函数(){

  console.log(1。演示构造器’)

  }

  ngOnChanges() {

  console.log(2。demo ngOnChanges’)

  }

  ngOnInit() {

  console.log(3。demo ngOnInit’)

  }

  }

  当值通过@Input传递给子组件demo时,demo组件中的ngOnChanges将被触发。

  当@Input传递的属性发生变化时,可以多次触发演示组件中的ngOnChanges钩子函数。

  !app.component.html

  差异

  应用程序演示[计数]=计数/应用程序演示

  button (click)=parentDemo()父按钮/按钮

  /div//app.component.ts

  parentDemo() {

  this.count

  }

  

ngDoCheck

  当检测到变化时,触发挂钩功能。

  每次执行更改检测时,在ngOnChanges之后立即调用该钩子函数,第一次执行更改检测时,在ngOnInit之后调用该钩子函数。

  //demo.component.ts

  ngDoCheck() {

  console.log(4。演示ngDoCheck’)

  }

  这个钩子函数调用频繁,成本较高,要谨慎使用。

  

ngAfterContentInit

  当外部内容被投影到内部组件时,ngAfterContentInit在第一次调用ngDoCheck后仅调用一次。

  //demo.component.ts

  ngAfterContentInit() {

  console.log(5。demo ngAfterContentInit’);

  }

  

ngAfterContentChecked

   ngAfterContentChecked钩子函数在每次ngDoCheck后被调用。

  //demo.component.ts

  ngAfterContentChecked() {

  console.log(5 .demo ngAfterContentChecked’);

  }

  

ngAfterViewInit

   视图初始化完成调用此钩子函数。在第一次ngAfterContentChecked之后调用,只调用一次。

  这个时候,获取页面的数字正射影像图节点比较合理

  //演示。组件。分时(同timesharing)

  ngAfterViewInit

  console.log(7 .demo ngafterviewit’);

  }

  

ngAfterViewChecked

   视图检测完成调用。在ngAfterViewinit后调用,和在每次ngAfterContentChecked之后调用,也就是在每次ngDoCheck之后调用。

  //demo.component.ts

  ngAfterViewChecked() {

  console.log(8 .ngAfterViewChecked’)

  }

  

ngOnDestroy

   组件被销毁时候进行的操作。

  !app.component.html

  app-demo[count]= count * ngIf= show demo组件/app-demo

  按钮(点击)=hideDemo()隐藏演示组件/button//app.component.ts

  公共showdemo组件:boolean=true

  hideDemo() {

  this.showDemoComponent=false

  }//demo.component.ts

  ngOnDestroy() {

  console.log(9 .demo ngOnDestroy’)

  }

  【完】

  更多编程相关知识,请访问:编程入门!以上就是一文聊聊有角的中的生命周期的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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