簡體   English   中英

如何在不調用事件的情況下將數據從子級發送到父級(vue 2)

[英]how to emit the data from child to parent without calling an event(vue 2)

我需要將數據從子組件發送到其父組件(通過發射),一旦子組件被加載而不調用任何事件,如 click 或 keyUp,......
換句話說,我希望一旦掛載子組件,它會自動將其一些數據發送給父組件,而不必調用事件來發出數據。
vue.js 有什么辦法嗎?
我會提前謝謝你

我建議您閱讀有關props如何工作的信息: https://v2.vuejs.org/v2/guide/components-props.html

您可以嘗試做的一件事是將 Object 作為道具傳遞,並在子級內部改變 object,而不是監控父級中的 object 變化。 但老實說,這與 Vue 的工作原理相沖突,並且是基於實踐的。 所以不要這樣做。

但真正的問題是什么? 發出自定義事件是迄今為止最簡單的事情,並且完全符合 Vue。

在父母中:

<my-comp @initiated="handleInitiated"/>

在孩子中,在您完成初始工作后:

this.$emit('initiated', initiationData)

如果您在使用默認事件名稱時擔心事件傳播,那么這個帶有自定義事件名稱的解決方案可以解決這個問題。 當然,一旦你抓住它,你也可以隨時停止進一步的傳播。

而不是使用$emit我建議使用一些store (狀態管理)。

它可以是全局商店或子商店。 可以更輕松地查看任何父/子組件中的更改。

想象一下,您想在來自父組件的非常深的子組件中收聽。 你會開始傳遞事件嗎?

流程是:

1-從深層嵌套的孩子更新商店

2-在您的父組件中使用存儲獲取器來觀察/計算更改

結帳vuex https://vuex.vuejs.org/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM