我有一個使用 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。
uj5u.com熱心網友回復:
如果您使用的是 Vue 2,則可以實作全域事件總線。
事件總線/發布-訂閱模式是一種讓應用程式的不相關部分相互通信的方式。
雖然,這個問題似乎暴露了應用程式資料管理中的一個更大的問題。據我了解,所有依賴的資料都應該來自同一部分。例如,如果您的footer和child組件依賴于另一個,則parent應該獲取 的資料child并將該資料作為道具傳遞。這樣您就可以處理footer組件的加載狀態。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375536.html
標籤:javascript html css Vue.js
下一篇:我如何更改函式的資料值?
