-
- 通过输入型绑定把数据从父组件传到子组件
-
父组件中使用子组件并绑定输入属性
<div nz-row> <div nz-col [nzLg] "{span :24}"> <download-pdf-button [elementld]="'riskReport'" [parentName]="'risk assessment'"> <download-pdf-button> </div> </div> -
子组件使用 @Input 获取父组件给子组件绑定的属性值
export class DownloadPDFButtonComponent implements OnInit{ @Input() elementld: string = ""; @Input() parentName: string = ""; constructor( private NzMessageService, private element: ElementRef ){} ngOnInit(): void { console. log( "elementld", this.elementld) ; console. log( "parentNarpe" this.parentName); } -
结果:constructor 中获取不到 input 属性,最先获取的生命周期是在 onInit
-
- 通过输入型绑定把数据从父组件传到子组件
-
- 通过 setter 截听输入属性值的变化
-
@Input() 使用一个输入属性的 setter ,以拦截父组件中值的变化并采取行动
export class DownloadPDFButtonComponent implements OnInit{ @Input() elementld: string=""; @Input() get parentName() {return this ._parentName} set parentName(parentName: string) { this._parentName = parentName ? parentName + "parent" : 'risk-parent' } _parentName = "";
-
- 通过 setter 截听输入属性值的变化
-
-
通过 ngOnChanges() 来截听输入属性值
-
-
- 父组件监听子组件的事件
-
子组件绑定 click 事件
<button (click)="downloadPDF('hello')" nz-button [nz-type]="'primary'"> <i nz-icon nzType = "downLoad" nzTheme="outline"></i>下载 PDF </button> -
引入 EventEmitter 和 output
-
定义 output 变量并发送数据到父组件
-
父组件绑定子组件output事件变量
-
- 父组件监听子组件的事件
-
-
父组件与子组件通过本地变量 互动
-
-
- 父组件调用 @ViewChild
-
父组件中 import 子组件和* viewChild*
-
声明子组件
-
调用子组件的方法
-
- 父组件调用 @ViewChild
-
- 父组件和子组件通过服务来通讯