[英]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.