angular 初探之父子组件之间传递数据
2020-06-06 04:56
405 查看
angular 初探之父子组件之间传递数据
当一个组件封装好后,却由于在组件里处理过多的数据,而这些数据每个使用这个组件的人都可能不同的时候,那么封装就是不合理的。
所以将更多的处理和数据的调用给与外部是很有必要的。
vue中通过属性和子组件事件的触发实现父子组件之间的通信,angular也是如此,只是写法略有不同。
// 子组件中 // son.ts @Input() data: info[] = []; @Output() tabSelected = new EventEmitter(); handlerSelected() { this.tabSelected.emit(this.data[this.testIndex]); } son.html <li *ngFor="let item of data; let i = index"> <a href="{{ item.link }}" (click)="handlerSelected(i)"> {{ item.title }} </a> <span *ngIf="i === testIndex" class="active"></span> </li>
// 父组件中 // father.ts menus: info[] = [ { title: "衣物", link: "#" }, { title: "鞋子", link: "#" }, { title: "电脑", link: "#" }, { title: "手机", link: "#" }, { title: "电器", link: "#" }, { title: "空调", link: "#" }, { title: "水果", link: "#" }, { title: "零食", link: "#" }, { title: "农产品", link: "#" }, { title: "汽车", link: "#" } ]; handlerTest(v: info) { console.log(v) } // father.html <app-root [data]= "menus" (tabSelected)="handlerTest($event)"></app-root>
对于父组件数据传输在子组件中使用
@Input() data: info接收,父组件中的html上使用
[data] = menus
子组件触发事件
// js @Output() notify = new EventEmitter(); // 子组件中 html <button (click)="notify.emit()">Notify Me</button>
相关文章推荐
- Angular2父子组件之间数据传递:局部变量获取子组件
- Angular2父子组件之间数据传递:父子组件共享服务通信
- Angular2父子组件之间数据传递:@ViewChild获取子组件
- Angular2父子组件之间数据传递:父子组件共享服务通信
- Angular2父子组件之间数据传递:@Input和@Output (上)
- Angular2父子组件之间数据传递:@Input和@Output (下)
- Angular06 组件、模块、父子组件之间的数据传递
- Angular 组件之间数据的传递 之 @Input @Output
- vue.js---父子组件之间简单的数据传递
- Angular 2父子组件数据传递之@Input和@Output详解 (上)
- vue 父子组件之间的数据传递
- angular2父子组件的数据传递,父组件向子组件传递数据
- Angular 2父子组件数据传递之局部变量获取子组件其他成员
- Angular 2父子组件数据传递之@ViewChild获取子组件详解
- Angular 2父子组件数据传递之@Input和@Output详解(下)
- Vue学习笔记4.5 非父子组件之间的数据传递(bus机制/订阅者模式/观察者模式)
- vue.js组件之间传递数据的方法
- vue中各组件之间传递数据的方法示例
- job-React 组件之间的传递数据
- vue 兄弟组件之间传数据之通过父组件来传递