我有一個使用 Vue 的 SPA,默認佈局是標題中的一些 html,然後是一個抽象的子組件,它被注入到頁面中。每個孩子都有一個加載器,因此在加載頁面時,用戶會看到標題 html,並在孩子從服務器獲取數據並呈現它時顯示加載圖標:
<navbar/>
<child id="main-content"/>
我現在需要為每個頁面添加一個頁腳。但是,在父默認佈局中添加頁腳會導致顯示頁眉,然後是加載圖標,然後是頁腳,最終只有在從子服務器中獲取數據後才會向下推頁腳,這看起來並不好:
<navbar/>
<child id="main-content"/>
<footer>
Stuff in my footer that should not be shown until the child component is completely loaded
</footer>
有沒有辦法在父組件中隱藏頁腳,直到子組件呈現其所有數據?我希望有一個解決方案可以從父級實現一次,而不必為每個子級添加 $emit。
如果您使用的是 Vue 2,則可以實現全局事件總線。
事件總線/發布-訂閱模式是一種讓應用程序的不相關部分相互通信的方式。
雖然,這個問題似乎暴露了應用程序數據管理中的一個更大的問題。據我了解,所有依賴的數據都應該來自同一部分。例如,如果您的footer
和child
組件依賴於另一個,則parent
應該獲取 的數據child
並將該數據作為道具傳遞。這樣您就可以處理footer
組件的加載狀態。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句