这篇文章主要讲解了“Angular父子组件间如何传数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Angular父子组件间如何传数据”吧!
创新互联-专业网站定制、快速模板网站建设、高性价比渝北网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式渝北网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖渝北地区。费用合理售后完善,十多年实体公司更值得信赖。
环境: Angular CLI: 11.0.6 Angular: 11.0.7 Node: 12.18.3 npm : 6.14.6 IDE: Visual Studio Code
组件之间传递数据,最主要的就是父子组件之间传递数据, 例如:
父组件传入数据给子组件,同时,子组件数据发生变化是,希望能够通知父组件。
Angular 中,@Input() 和 @Output() 为子组件提供了一种与其父组件通信的方法。 @Input() 允许父组件更新子组件中的数据。相反,@Output() 允许子组件向父组件发送数据。
1. 子组件定义@Input()
子组件中的 @Input() 装饰器表示该属性可以从其父组件中获取值。
例如:
export class ChildComponent {
@Input() message: string;
}
增加@Input() 装饰器的变量,除了数据可以从父组件传入后,其他逻辑和普通变量一致;
子组件的html代码中,既可使用message这个变量, 例如:
Parent says: {{message}}
2. 父组件传递变量给子组件
当父组件调用子组件时,可以把父组件的变量(如messageToChild
) 传递给子组件
子组件中,可以更改
message
这个传入的变量,但是其作用域只在子组件中,父组件拿不到更改后的结果。(如何传给父组件,请接着看)
Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。
1. 子组件定义@Output
子组件定义@Output
export class ChildComponent {
// EventEmitter ,这意味着它是一个事件
// new EventEmitter
子组件当数据发生变化时,调用这个addNewItem
方法既可。例如,html中
2. 父组件订阅事件
1、父组件的ts代码中,增加一个处理上面事件的方法,例如
addItem(newItem: string) {
// logic here
}
2、父组件的html中,订阅该事件。
事件绑定 (newItemEvent)='addItem($event)'
会把子组件中的 newItemEvent 事件连接到父组件的 addItem() 方法。
感谢各位的阅读,以上就是“Angular父子组件间如何传数据”的内容了,经过本文的学习后,相信大家对Angular父子组件间如何传数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!