首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2模拟封装是否会影响性能?

Angular2模拟封装是否会影响性能?
EN

Stack Overflow用户
提问于 2016-05-27 17:36:16
回答 2查看 1.6K关注 0票数 0

我问这个问题是因为我们现在正在构建的应用程序非常慢,尽管我们并没有做疯狂的事情!

这只是一个简单的多步骤表单,假设有20个字段。这个应用程序非常慢,特别是在滚动上,我可以在视觉上看到滞后。所有的组件都是定制的,所以我们没有使用任何第三方库。

我试图让所有的组件都是encapsulation:ViewEncapsulation.None的,我不能100%地说这解决了问题,但它肯定让它变得有点流畅。

有谁在这方面有很好的经验吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-27 17:39:12

首先,如果您要调查性能,请确保启用了prodMode。在devMode中,变化检测总是运行第二轮。

在解析和重写样式时,ViewEncapsulation.Emulated (默认值)确实会对性能产生一次性影响。因为这个构建步骤将很快被提供,所以这是在Angular应用程序被提供给客户端之前静态地完成的。

ViewEncapsulation.Native可以提高性能,因为当它可以将重新呈现限制为单个组件而不是整个页面时,它允许浏览器更好地优化重新呈现。不能保证浏览器确实做了这种优化。但这是阴影穿透选择器/deep/ (>>>)和::shadow从阴影DOM规范中删除的主要原因。

另请参阅Is shadow DOM fast like Virtual DOM in React.js?

票数 2
EN

Stack Overflow用户

发布于 2018-08-09 03:51:48

事实上,它会影响性能。这就是为什么像@angular/material这样的UI库使用ViewEncapsulation.None的原因。模拟的阴影DOM意味着对于每个组件,新的样式表被添加到DOM中,因此样式呈现速度较慢。

奇怪的是,你的屏幕上有20个组件的问题,但我可以肯定地想象,如果有几十个或更多组件,性能会变慢。当此组件具有复杂且未优化的CSS规则时更是如此

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37479998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档