首页前端开发JavaScript聊聊Angular中父子组件间怎么传递数据

聊聊Angular中父子组件间怎么传递数据

时间2024-01-31 07:09:02发布访客分类JavaScript浏览335
导读:收集整理的这篇文章主要介绍了聊聊Angular中父子组件间怎么传递数据,觉得挺不错的,现在分享给大家,也给大家做个参考。Angular中父子组件间怎么传递数据?下面本篇文章就来给大家介绍一下Angular中父组件向子组件传数据、子组件向父组...
收集整理的这篇文章主要介绍了聊聊Angular中父子组件间怎么传递数据,觉得挺不错的,现在分享给大家,也给大家做个参考。Angular中父子组件间怎么传递数据?下面本篇文章就来给大家介绍一下Angular中父组件向子组件传数据、子组件向父组件传数据的方法,希望对大家有所帮助!@H_512_0@

@H_126_3@

环境:

  • Angular cli: 11.0.6
  • Angular: 11.0.7
  • Node: 12.18.3
  • npm : 6.14.6
  • IDE: Visual Studio Code

组件之间传递数据,最主要的就是父子组件之间传递数据, 例如:

parent-component>
      child-component>
    /child-component>
    /parent-component>
    

父组件传入数据给子组件,同时,子组件数据发生变化是,希望能够通知父组件。

Angular 中,@Input() 和 @Output() 为子组件提供了一种与其父组件通信的方法。 @Input() 允许父组件更新子组件中的数据。相反,@Output() 允许子组件向父组件发送数据。【相关教程推荐:《angular教程》】

父传子 @Input()

1. 子组件定义@Input()

子组件中的 @Input() 装饰器表示该属性可以从其父组件中获取值。

例如:

export class ChildComponent {
      @Input() message: string;
}
    
  • 增加@Input() 装饰器的变量,除了数据可以从父组件传入后,其他逻辑和普通变量一致;

  • 子组件的htML代码中,既可使用Message这个变量, 例如:

p>
  Parent says: {
{
message}
}
    /p>
    

2. 父组件传递变量给子组件

当父组件调用子组件时,可以把父组件的变量(如messageToChild) 传递给子组件

child-component [message]="messageToChild">
    /child-component>
    

子组件中,可以更改message这个传入的变量,但是其作用域只在子组件中,父组件拿不到更改后的结果。(如何传给父组件,请接着看)

子传父 @Output()

Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。

1. 子组件定义@Output

子组件定义@Output

export class ChildComponent {
      // EventEmITter ,这意味着它是一个事件  // new EventEmitterstring>
    () -   // 使用 Angular 来创建一个新的事件发射器,它发出的数据是 string 类型的。  @Output() newItemEvent = new EventEmitterstring>
    ();
  addNewItem(value: string) {
        this.newItemEvent.emit(value);
  }
}
    

子组件当数据发生变化时,调用这个addNewItem方法既可。例如,html中

label>
    Add an item: input #newItem>
    /label>
    button (click)="addNewItem(newItem.value)">
    Add to parent's list/button>
    

2. 父组件订阅事件

1、父组件的ts代码中,增加一个处理上面事件的方法,例如

addItem(newItem: string) {
    // LOGic here}
    

2、父组件的html中,订阅该事件。

child-component (newItemEvent)="addItem($event)">
    /child-component>
    

事件绑定 (newItemEvent)='addItem($event)' 会把子组件中的 newItemEvent 事件连接到父组件的 addItem() 方法。

总结

  • 使用@Input() 和 @Output() 可以很方便的实现父子组件之间的数据传递、共享。

  • 可以同时使用 @Input() 和 @Output()

更多编程相关知识,请访问:编程学习!!

以上就是聊聊Angular中父子组件间怎么传递数据的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

Angular组件

若转载请注明出处: 聊聊Angular中父子组件间怎么传递数据
本文地址: https://pptw.com/jishu/593641.html
Node项目中用images+imageinfo库给图片批量添加水印 浅析Node.js使用worker

游客 回复需填写必要信息