当前位置:  开发笔记 > 编程语言 > 正文

如何为Angular2组件实现多个生命周期钩子?

如何解决《如何为Angular2组件实现多个生命周期钩子?》经验,为你挑选了2个好方法。

我知道在Angular2中定义组件时,您可以实现多种类型的生命周期钩子,例如OnDestroy,NgOnInit等.

在我在网上看到的关于使用这些钩子的每个代码片段中,我只看到它们一次被使用一个.例如

export class ModalComponent implements OnDestroy { ... }

要么

export class ModalComponent implements OnChanges { ... } 

但是如果你想为一个组件使用多个呢?例如,如果您想要OnChanges和OnDestroy的特定行为,该怎么办?我尝试过以下方法:

export class ModalComponent implements OnChanges implements OnDestroy{ ... } 
export class ModalComponent implements OnChanges, OnDestroy { ... } 
export class ModalComponent implements [OnChanges, OnDestroy] { ... } 
export class ModalComponent implements OnChanges and OnDestroy { ... } 

我确定答案非常简单,但我在找到答案时遇到了很多麻烦.

先感谢您!



1> A. Tim..:

您可以扩展1个类并实现多个接口.生命周期钩子是接口.

class D extends C implements A, B{}


还要确保从'@ angular/core'中正确导入它们`import {Component,OnInit,Input,OnDestroy}

2> 小智..:

当您实现两个带有逗号分隔符的接口时,您可能是对的。

这是一个例子。

import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';


@Component({
  selector: 'app-ram-component',
  templateUrl: './ram.component.html',
  styleUrls: ['./ram.component.css']
})

export class RamComponentComponent implements OnInit,OnDestroy,AfterViewInit { 

  constructor() { }

  ngOnInit() {
    console.log('On Init');
  }
  ngAfterViewInit(){
    console.log('after view');
  }
  ngOnDestroy(){
    console.log('destroyed!!');
  }
}

请注意,导入声明必须包含所有必要的生命周期挂钩。

 import { Component, OnInit, AfterViewInit, OnDestroy } from '@angular/core';

生命周期挂钩参考

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有