隱藏頁面的一部分,直到使用 vue 加載子組件

埃里克

我有一個使用 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,則可以實現全局事件總線

事件總線/發布-訂閱模式是一種讓應用程序的不相關部分相互通信的方式。

雖然,這個問題似乎暴露了應用程序數據管理中的一個更大的問題。據我了解,所有依賴的數據都應該來自同一部分。例如,如果您的footerchild組件依賴於另一個,則parent應該獲取 的數據child並將該數據作為道具傳遞。這樣您就可以處理footer組件的加載狀態

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何延遲加載 vue2 組件

如何延遲加載主頁的 Angular 組件?

如何在 Vue 組件渲染之前加載 Axios Response?

Wordpress子菜单链接到页面的一部分

使用 setInterval 和 settimeout 使 3 個組件依次加載

使用 VUE - 即使只有一部分不同,HTML 是否也会更新?

Vue.js使用计算属性显示或隐藏组件的一部分

傳遞將在子組件中以樣式使用的道具 - Vue

Vue Composition Api - 調用使用渲染函數的子組件的方法

如何在子查询中使用HAVING作为Select语句的一部分

使用子域访问Web应用程序的一部分(Symfony)

使用sed仅更改子字符串的一部分

在 vue 计算属性中使用数组数据项长度作为字符串的一部分

vue.js如何使用v-for仅迭代数组的一部分

组织后端(节点)流程和使用这些流程一部分的前端(Vue / Nuxt)的最佳方法

计算Vue.js的运行使其不成为DOM的一部分

尽管调用不同,但vue组件的一部分永远不会改变

Vue:将软件包的一部分注册为组件

作为Vue插件的一部分向Vuex存储添加变异

仅显示表vue.js的一部分

是否可以仅导入vue组件的一部分?

JS/Vue:确认类是公共 API 的一部分?

Vue中如何存儲多個子組件的值並在父組件中執行一個函數

嘗試將 JSON 導入 React 組件時出錯:“您可能需要一個合適的加載器”,但正確的加載器已經安裝

未使用 pyinstaller 加載的軟件包

如何使用 TKinter 創建軟件加載窗口?

如何獲取用戶輸入並使用它來打印數組的一部分?

如何使用Objective C获取子单元的IndexPath第一部分表视图?

如何使用子字符串函数在SAS中获取单词的最后一部分?