簡體   English   中英

卸載聚合物頁面

[英]Unloading Polymer pages

我一直在與Redux和Polymer(2.0)入門套件結合使用POCing Polymer,該套件除其他外介紹了iron-pages組件以及其中包含的頁面的延遲加載。

但是,我注意到它們實際上並不是頁面,而是更像老式的標簽欄 ,其中所有內容均已加載到DOM中,但使用CSS隱藏。 調用了connectedCallback()生命周期方法,但並不是disconnectedCallback()並不是因為組件從未卸載過。

這感覺就像是對我的記憶和性能泄漏。 我們將實現的一個用例是通過websocket頻繁更新數據。 我要避免的是它在后台更新。 對於台式機,我想它可以,但是對於移動設備,它的性能將很糟糕。

其次,我寧願不必實施手動生命周期管理; NIH的氣味。

因此,可以歸結為:在Polymer和/或分頁Web組件中是否存在組件卸載或可靠的生命周期回調?

編輯:我看到“ 卸載聚合物”頁面有相同的問題-雖然沒有答案。

編輯2:我也看到在鐵頁上也存在與此相關的問題。

如相關問題所述,您可以將條件模板( <template is="dom-if"> )與restamp屬性一起使用。 隨着restamp ,元素被移除時的條件是假的,所以你的disconnectedCallback被調用。

您可以使用一組dom-if模板來代替iron-pages元素。

如您所述, iron-pages元素更像是一個選項卡面板,並且在基礎視圖相對較淺時效果很好,或者您希望人們經常來回切換並且不想支付重新創建它們的成本。 但是,在許多情況下,當元素占用大量內存或(只要您在您的情況下)只要它們在頁面上就可以工作時,有條件的模板就是解決方法。

暫無
暫無

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

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