站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

一文詳解Angular父子組件間傳數(shù)據(jù)的方法

本篇文章帶大家了解一下Angular父子組件(Component)之間傳遞數(shù)據(jù)的方法,介紹一下Angular中父組件向子組件傳數(shù)據(jù)、子組件向父組件傳數(shù)據(jù)的方法,希望對大家有所幫助!

一文詳解Angular父子組件間傳數(shù)據(jù)的方法

環(huán)境: Angular CLI: 11.0.6 Angular: 11.0.7 Node: 12.18.3 npm : 6.14.6 IDE: Visual Studio Code
登錄后復(fù)制

組件之間傳遞數(shù)據(jù),最主要的就是父子組件之間傳遞數(shù)據(jù), 例如:

<parent-component>   <child-component></child-component> </parent-component>
登錄后復(fù)制

父組件傳入數(shù)據(jù)給子組件,同時,子組件數(shù)據(jù)發(fā)生變化是,希望能夠通知父組件。

Angular 中,@Input() 和 @Output() 為子組件提供了一種與其父組件通信的方法。 @Input() 允許父組件更新子組件中的數(shù)據(jù)。相反,@Output() 允許子組件向父組件發(fā)送數(shù)據(jù)。

父傳子 @Input()

1. 子組件定義@Input()

子組件中的 @Input() 裝飾器表示該屬性可以從其父組件中獲取值。【相關(guān)教程推薦:angular教程、編程教學(xué)】

例如:

export class ChildComponent {   @Input() message: string; }
登錄后復(fù)制

  • 增加@Input() 裝飾器的變量,除了數(shù)據(jù)可以從父組件傳入后,其他邏輯和普通變量一致;

  • 子組件的html代碼中,既可使用message這個變量, 例如:

<p>   Parent says: {{message}} </p>
登錄后復(fù)制

2. 父組件傳遞變量給子組件

當父組件調(diào)用子組件時,可以把父組件的變量(如messageToChild) 傳遞給子組件

<child-component [message]="messageToChild"></child-component>
登錄后復(fù)制

子組件中,可以更改message這個傳入的變量,但是其作用域只在子組件中,父組件拿不到更改后的結(jié)果。(如何傳給父組件,請接著看)

子傳父 @Output()

Angular通過事件(Event)來實現(xiàn)子組件通知父組件數(shù)據(jù)的改變,父組件需要訂閱該事件。

1. 子組件定義@Output

子組件定義@Output

export class ChildComponent {    // EventEmitter ,這意味著它是一個事件   // new EventEmitter<string>() -    // 使用 Angular 來創(chuàng)建一個新的事件發(fā)射器,它發(fā)出的數(shù)據(jù)是 string 類型的。   @Output() newItemEvent = new EventEmitter<string>();    addNewItem(value: string) {     this.newItemEvent.emit(value);   } }
登錄后復(fù)制

子組件當數(shù)據(jù)發(fā)生變化時,調(diào)用這個addNewItem方法既可。例如,html中

<label>Add an item: <input #newItem></label> <button (click)="addNewItem(newItem.value)">Add to parent's list</button>
登錄后復(fù)制

2. 父組件訂閱事件

1、父組件的ts代碼中,增加一個處理上面事件的方法,例如

addItem(newItem: string) {     // logic here }
登錄后復(fù)制

2、父組件的html中,訂閱該事件。

<child-component (newItemEvent)="addItem($event)"></child-component>
登錄后復(fù)制

事件綁定 (newItemEvent)='addItem($event)' 會把子組件中的 newItemEvent 事件連接到父組件的 addItem() 方法。

總結(jié)

  • 使用@Input() 和 @Output() 可以很方便的實現(xiàn)父子組件之間的數(shù)據(jù)傳遞、共享。

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

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产成人精品免费视频大全| 亚洲精品影院久久久久久| 日韩精品一区二区三区四区| 亚洲精品私拍国产福利在线| 亚洲精品日韩中文字幕久久久| 亚洲91精品麻豆国产系列在线 | 午夜DY888国产精品影院| 91久久精品午夜一区二区| 国产免费久久精品| 三级高清精品国产| 国产l精品国产亚洲区在线观看| 91精品国产91久久| 亚洲精品日韩中文字幕久久久| 久热这里只有精品99国产6| 久久精品国产99国产精2020丨 | 久久精品国产2020观看福利| 亚洲AV无码精品国产成人| 精品中文字幕久久久久久| 国产精品二区观看| 亚洲欧洲国产精品你懂的| 成人久久精品一区二区三区| 久久免费99精品国产自在现线| 久久伊人精品热在75| 久久精品国产亚洲AV未满十八| 中文字幕亚洲日韩无线码| 麻豆成人久久精品二区三区免费| 精品国产一区二区三区免费看| 成人精品视频一区二区三区| 精品一二三区久久aaa片 | 亚洲国产综合精品一区在线播放 | 国产成人精品天堂| 日韩爽爽视频爽爽| 2021国产精品自拍| 成年日韩片av在线网站| 国产三级精品三级在专区中文| 国内精品国产成人国产三级| 久久久久亚洲精品无码网址色欲| 国产精品亚洲综合一区| 最新日韩精品中文字幕| 国内精品国语自产拍在线观看 | 无码日韩人妻AV一区免费l |