像梦一样奔驰|@Input和@Output注解使用方法介绍,Angular
这一对注解用于在parent上下文和子指令或者组件之间共享数据 。 @Input修饰的属性可写 , 用于数据绑定 , 而@Output属性可被订阅(Observable).
>@Input()and@Output()allowAngulartosharedatabetweentheparentcontextandchilddirectivesorcomponents.An@Input()propertyiswritablewhilean@Output()propertyisobservable.
假设有这样一对父子Component:
可以把@Input和@Output想象成一对API,父子组件间通过API进行通信 。 @Input相当于inbound接口 , 允许数据流入子Component , 而@Output允许子Component往外发送数据 。
@Input()and@Output()actastheAPI,orapplicationprogramminginterface,ofthechildcomponentinthattheyallowthechildtocommunicatewiththeparent.Thinkof@Input()and@Output()likeportsordoorways—@Input()isthedoorwayintothecomponentallowingdatatoflowinwhile@Output()isthedoorwayoutofthecomponent,allowingthechildcomponenttosenddataout.
>Usethe@Input()decoratorinachildcomponentordirectivetoletAngularknowthatapropertyinthatcomponentcanreceiveitsvaluefromitsparentcomponent.Ithelpstorememberthatthedataflowisfromtheperspectiveofthechildcomponent.Soan@Input()allowsdatatobeinputintothechildcomponentfromtheparentcomponent.
如何理解Angular这对input和output的流向?类似SAPCRM中间件里的download和upload.在SAP中间件里 , 我们谈论数据流向时 , 视角是从SAPCRM出发的 , 凡是数据从ERP流向CRM , 即CRM从ERP下载数据 , 所以称为download.反之 , 从CRM推送数据到ERP , 称为upload.
而Angular里的@input和@output , 视角同样是从childComponent来说的 。
被@output修饰的子Component属性 , 一般通过AngularEventEmitter初始化 , 通过events的方式流出子Component.
An@Output()propertyshouldnormallybeinitializedtoanAngularEventEmitterwithvaluesflowingoutofthecomponentasevents.
>@Output()newItemEvent=newEventEmitter();
如何通过Event的方式发送数据给parentComponent?
exportclassItemOutputComponent{@Output()newItemEvent=newEventEmitter();addNewItem(value:string){this.newItemEvent.emit(value);}}childComponent的html:childComponent的html:
Addanitem:如何在parentComponent里接收来自childComponent的事件?
newItemEvent是子Component加了@Output注解的property名称 , addItem是父Component的事件处理函数:
exportclassAppComponent{items=['item1','item2','item3','item4'];addItem(newItem:string){this.items.push(newItem);}}
推荐阅读
- 科技日日说|realme真我X7全方位评测:不一样的颜值,不一样的体验!,原创
- 功夫财经|猪肉也被人卡脖子了,种猪大危机:和芯片一样
- 就是爱搞机|嫌你家音箱外观太单调?哈曼卡顿给你不一样的视觉冲击感
- 韭菜花音乐|PC一样强大,数字化验孕仪性能几乎和最初的IBM
- 理想生活实验室资讯号|S7 开箱体验:机身轻便,设计和拍摄表现一样干净友好,vivo
- 光一样的少年|必须试试,受够了电脑弹窗广告的你
- 基因|美国发现一只基因变异的猩猩,手指已和人类一样,还能够持续进化
- 老虎|谁说只有老虎的头上才有王字,这种动物也有,而且和老虎一样凶猛
- 商业经济观察|造芯片如同造原子弹一样重要!华为的“遭遇”给所有人敲醒了警钟
- 互联网的放大镜|小米将和奔驰合作?但卢伟冰此前嘲讽了友商和保时捷合作