本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章给大家介绍一下Angular中父子组件间传递数据的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。环境:
- Angular CLI: 11.0.6
- Angular: 11.0.7
- Node: 12.18.3
- npm : 6.14.6
- IDE: Visual Studio Code
1. 摘要
组件之间传递数据,最主要的就是父子组件之间传递数据, 例如:
1 2 3 |
|
父组件传入数据给子组件,同时,子组件数据发生变化是,希望能够通知父组件。
Angular 中,@Input() 和 @Output() 为子组件提供了一种与其父组件通信的方法。 @Input() 允许父组件更新子组件中的数据。相反,@Output() 允许子组件向父组件发送数据。【相关教程推荐:《angular教程》】
2. 父传子 @Input()
2.1. 子组件定义@Input()
子组件中的 @Input() 装饰器表示该属性可以从其父组件中获取值。
例如:
1 2 3 |
|
1、增加@Input() 装饰器的变量,除了数据可以从父组件传入后,其他逻辑和普通变量一致;
2、子组件的html代码中,既可使用message这个变量, 例如:
1 2 3 |
|
2.2. 父组件传递变量给子组件
当父组件调用子组件时,可以把父组件的变量(如messageToChild
) 传递给子组件
1 |
|
子组件中,可以更改
message
这个传入的变量,但是其作用域只在子组件中,父组件拿不到更改后的结果。(如何传给父组件,请接着看)
3. 子传父 @Output()
Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。
3.1. 子组件定义@Output
子组件定义@Output
1 2 3 4 5 6 7 8 9 10 11 |
|
子组件当数据发生变化时,调用这个addNewItem
方法既可。例如,html中
1 2 |
|
3.2. 父组件订阅事件
1、父组件的ts代码中,增加一个处理上面事件的方法,例如
1 2 3 |
|
2、父组件的html中,订阅该事件。
1 |
|
事件绑定 (newItemEvent)='addItem($event)'
会把子组件中的 newItemEvent 事件连接到父组件的 addItem() 方法。
4. 总结
使用@Input() 和 @Output() 可以很方便的实现父子组件之间的数据传递、共享。
可以同时使用 @Input() 和 @Output()
更多编程相关知识,请访问:编程入门!!
以上就是浅谈Angular中父子组件间怎么传递数据的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
浅谈Angular项目中如何引入第三方ui库(Angular material)
浅谈Angular如何借助第三方组件和懒加载技术进行性能优化
更多相关阅读请进入《Angular》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者