繁体   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