本篇文章带大家详细介绍一下angular组件交互。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

组件交互: 组件通讯,让两个或多个组件之间共享信息。
使用场景: 当某个功能在多个组件中被使用到时,可以将该特定的功能封装在一个子组件中,在子组件中处理特定的任务或工作流。
交互方式:
@Input和@Output装饰器进行交互。服务进行交互。【相关推荐:《angular教程》】
通过输入型绑定将数据从父组件传到子组件。
输入属性是一个带有@Input装饰器的可设置属性。
当它通过属性绑定的形式被绑定时,值会“流入”这个属性。
部分代码示例如下:
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-selector',
template: `
// 模板代码
`
})
export class TestComponent {
@Input() hero: Hero;
@Input('master') masterName: string;
}上述例子中包含两个输入型属性,第二个@Input为子组件的属性名masterName指定一个别名master。
在父组件中引用子组件,部分代码示例如下:
<app-hero-child *ngFor="let hero of heroes"
[hero] = "hero"
[master] = "master">
</app-hero-child>使用一个输入属性的setter()方法,已拦截父组件中值的变化,并采取行动。
部分代码示例如下:
export class TestComponent {
@Input()
set name(name: String) {
// 逻辑处理
}
}使用OnChanges生命周期钩子接口的ngOnChanges()方法来监听输入属性值的变化并做出回应。
注: 当需要监视多个、交互式输入属性时,本方法比用属性的setter方法更合适。
黑色全屏自适应的H5模板 HTML5的设计目的是为了在移动设备上支持多媒体。新的语法特征被引进以支持这一点,如video、audio和canvas 标记。HTML5还引进了新的功能,可以真正改变用户与文档的交互方式,包括: 新的解析规则增强了灵活性 淘汰过时的或冗余的属性 一个HTML5文档到另一个文档间的拖放功能 多用途互联网邮件扩展(MIME)和协议处理程序注册 在SQL数据库中存
56
在子组件中从@angular/core导入Input、OnChanges和SimpleChange
import { Component, Input, OnChanges, SimpleChange } from '@angular/core';
@Component({
selector: 'app-version-child',
template: `
// 模板代码
`
})
export class ChildComponent implements OnChanges {
@Input() major: number;
@Input() minor: number;
ngOnChanges(changes: { [propKey: string]: SimpleChange }) {
for (let propName in changes) {
// propName为输入属性的名字
let changedProp = changes[propName]; // changedProp为SimpleChange对象
// 其它代码
}
}
}SimpleChange类源代码如下:
/**
* Represents a basic change from a previous to a new value for a single
* property on a directive instance. Passed as a value in a
* {@link SimpleChanges} object to the `ngOnChanges` hook.
*
* @see `OnChanges`
*
* @publicApi
*/
export declare class SimpleChange {
previousValue: any;
currentValue: any;
firstChange: boolean;
constructor(previousValue: any, currentValue: any, firstChange: boolean);
/**
* Check whether the new value is the first value assigned.
*/
isFirstChange(): boolean;
}子组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件。父组件绑定到这个事件属性,并在事件发生时作出回应。
子组件的 EventEmitter 属性是一个输出属性,通常带有@Output装饰器。
—— Angular 组件之间的交互
父组件和它的子组件共享同一个服务,利用该服务在组件家族内部实现双向通讯。
该服务实例的作用域被限制在父组件和其子组件内。这个组件子树之外的组件将无法访问该服务或者与它们通讯。
详细文档请参考 Angular 组件交互 相关部分内容
更多编程相关知识,请访问:编程入门!!
以上就是详解Angular中的组件交互的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号