📅  最后修改于: 2023-12-03 15:27:55.571000             🧑  作者: Mango
角度(Angular)是一个开源的 TypeScript 框架,由 Google 维护并开发。它是用于构建 Web 应用程序的一种工具集。
角度的主要特性包括:
在使用 Angular 开发应用程序时,组件、指令和服务将共同创建一个“应用程序生命周期”。
这个生命周期包含许多钩子函数,可以在 Angular 解析组件或指令之前或之后执行任意代码。
以下是角度生命周期中的几个钩子函数:
ngOnChanges
是一个用于监视输入属性变化的钩子函数。当一个输入属性的值发生变化时,此函数将被调用。
此函数具有一个单独的参数:一个包含了当前和先前属性值的对象。
import { Component, OnChanges, Input } from '@angular/core';
@Component({
selector: 'basic-component',
template: `
<p>{{ input }}</p>
`,
})
export class BasicComponent implements OnChanges {
@Input() input: string;
ngOnChanges(changes: SimpleChanges) {
console.log('New value:', changes.input.currentValue);
console.log('Old value:', changes.input.previousValue);
}
}
ngOnInit
是一个在组件初始化时调用的钩子函数。这个函数用于执行一些初始化代码,例如获取数据。
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'basic-component',
template: `
<p>{{ data }}</p>
`,
})
export class BasicComponent implements OnInit {
data: any;
ngOnInit() {
this.data = this.getData();
}
getData() {
// API 调用或其他数据获取
}
}
ngDoCheck
是一个 Angular 的“脏检查”机制,其可以用于检测任何模型的更改。每当 Angular 在组件的模型更改时,ngOnChanges
钩子函数都会跟随执行。
import { Component, DoCheck } from '@angular/core';
@Component({
selector: 'basic-component',
template: `
<p>{{ input }}</p>
`,
})
export class BasicComponent implements DoCheck {
@Input() input: string;
ngDoCheck() {
console.log('Change detected:', this.input);
}
}
ngOnDestroy
是一个组件销毁前调用的钩子函数。您可以在此处进行任意的资源清理工作,例如取消订阅。
import { Component, OnDestroy } from '@angular/core';
@Component({
selector: 'basic-component',
template: `
<p>{{ input }}</p>
`,
})
export class BasicComponent implements OnDestroy {
@Input() input: string;
subscription: Subscription;
ngOnInit() {
this.subscription = this.getData().subscribe(
(data: any) => (this.input = data),
(error: any) => console.error(error),
);
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
getData() {
// API 调用或其他数据获取
}
}
Angular 通常对于那些需要在组件、指令和服务之间交互的大型项目非常有用。在理解 Angular 的生命周期和钩子函数后,您可以更高效地编写 Angular 应用程序。
以上就是角度生命周期在 Html 中的介绍。