站長資訊網
        最全最豐富的資訊網站

        聊聊Angular中父子組件間怎么傳遞數據

        Angular中父子組件間怎么傳遞數據?下面本篇文章就來給大家介紹一下Angular中父組件向子組件傳數據、子組件向父組件傳數據的方法,希望對大家有所幫助!

        聊聊Angular中父子組件間怎么傳遞數據

        環境:

        • 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() 允許子組件向父組件發送數據?!鞠嚓P教程推薦:《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 EventEmitter<string>() -    // 使用 Angular 來創建一個新的事件發射器,它發出的數據是 string 類型的。   @Output() newItemEvent = new EventEmitter<string>();    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()

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 91精品国产91热久久久久福利 | 久久精品国产只有精品2020| 免费精品国产自产拍在线观看| 国产精品露脸国语对白| 日本精品自产拍在线观看中文 | 亚洲国产成人一区二区精品区| 99精品电影一区二区免费看| 精品国产乱码久久久久久郑州公司 | 香蕉依依精品视频在线播放 | 自拍偷自拍亚洲精品第1页| 国产精品第一区第27页| 国产精品久久国产精麻豆99网站| 亚洲国产精品无码久久一区二区| 久久精品免费大片国产大片| 国产精品秘入口福利姬网站| 欧美大片日韩精品| 99精品免费视频| 国产精品视频二区不卡| 亚洲精品无码专区在线在线播放| 日本精品一区二区三区在线视频一| 精品国产91久久久久久久a | heyzo高无码国产精品| 最新国产成人精品2024| 亚洲国产婷婷综合在线精品| 欧美XXXX黑人又粗又长精品| 国产亚洲精品看片在线观看 | 久久国产精品77777| 少妇精品久久久一区二区三区| 亚洲国产欧美日韩精品一区二区三区| 日韩精品无码久久一区二区三| 免费精品久久久久久中文字幕 | 亚洲一二成人精品区| 成人伊人精品色XXXX视频| 久久精品中文字幕无码绿巨人| 亚洲精品中文字幕乱码三区| 真实国产乱子伦精品视频| 亚洲午夜精品久久久久久app| 亚洲精品欧美精品日韩精品| 伊人久久无码精品中文字幕| 亚洲精品动漫人成3d在线| 亚洲欧洲精品成人久久曰影片|