CSS-in-JS性能降本策略
在某些情况下,CSS-in-JS已经成为一种流行的方式来将组件逻辑地链接到它们的样式。Aggelos Arvanitakis提醒开发人员,在某些情况下,CSS-in-JS的成本已经不能再被忽视,并提供了缓解策略。
Arvanitakis在一篇文章中指出,尽管JS-in-JS带来了很多好处,但在一些应用程序中仍然会造成性能问题。Arvanitakis重点介绍了React和两个流行的CSS-in-JS库(样式-组件和情感),并比较了相同代码的两个版本,其中只有一个版本使用了CSS-in-JS样式。无样式版本如下:
版本为:
风格化的CSS-in-JS实现的渲染时间似乎比非类型化版本长50%。尽管与JS-in-JS相关联的性能成本在许多情况下很难感知,但在其他情况下(例如,以大组件树为特征)可能会变得很明显。Arvanitakis假设一些库的性能损失可能是由它们如何修改组件树(使用上下文和添加上下文)引起的。读取样式值)和动态应用样式(样式包含动态注入的CSS标记)。阿尔瓦蒂克斯解释说:
在我意识到有一张桌子之前,一切都很好。我开始注意到渲染速度比较慢,尤其是行数超过50的时候。因此,我打开了我的开发工具,尝试和研究它。(……)所以,总之,动态风格(这意味着协调其他元素的反应)和内务处理中固有的多上下文消费者可能会减慢应用程序的速度。
因此,阿尔瓦蒂克斯提出了以下建议:
但是,Arvanitakis警告说,性能重构应该仅在遇到或测量性能问题后执行。JS-in-JS库的作者Oleg Isonen解释了四种常用的CSS-in-JS策略之间的权衡,并链接到比较CSS-in-JS库性能的基准(截至2019年3月)。使用选定的库运行基准测试结果,如下所示:
JS中的CSS可能局限于类似于响应的基于组件的框架。其他流行的框架,如Vue、Svelte或Angular,也使用其他托管策略为开发人员提供类似的好处(如范围有限的CSS和可以撼动树的CSS)。例如,Angular开发人员可以使用类似html的模板文件、css文件和JavaScript文件来定义他们的组件。然后。js文件将引用另外两个:
三个。Js、css和。Html文件应该放在同一目录下。此外,当模板和样式足够短或足够简单时,Angular开发人员可能更喜欢在@Component的定义中直接使用字符串形式的模板和样式。这两种方法在语法上不同,但它们提供了相同的范围优势。
Vue推广单打。Vue文件,其中包含样式标签,包括CSS样式信息、类似html的模板和用于处理组件行为的JavaScript方法。同样,Svelte也是这样写的。Svelte文件,其中也包含相同的文件、样式、模板和逻辑信息。是React等框架使用的另一种定位方法,它使用JavaScript来呈现函数,而不是模板。
正如Elm创始人Evan Czaplicki在推特上所说,组件就是对象。处理组件逻辑的方法似乎响应了罗伯特C马丁在:
单一责任原则的另一种说法是:
收集因为同样的原因而改变的东西。将因不同原因而改变的事物分开。
仔细想想,你会发现这只是定义内聚耦合的另一种方式。我们希望增加因相同原因而改变的事物之间的凝聚力,我们希望减少因不同原因而改变的事物之间的耦合。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
万象汽车试驾,轻松搞定试驾。只需几步,即可开启您的驾驶体验之旅。首先,通过官网或APP预约试驾时间,选择心...浏览全文>>
-
北汽瑞翔试驾流程主要包括以下几个步骤:首先,客户到达4S店后,由销售顾问接待并了解客户需求。随后,销售顾...浏览全文>>
-
试驾MG4 EV全攻略:MG4 EV是一款主打年轻、智能与续航的纯电车型。外观时尚,车身紧凑,适合城市通勤。内饰...浏览全文>>
-
预约试驾奥迪SQ5 Sportback,可线上与线下结合操作。首先,访问奥迪官网或官方APP,选择“试驾预约”,填写个...浏览全文>>
-
红旗试驾预约通常需要以下条件:1 年龄要求:申请人需年满18周岁,部分门店可能要求20岁以上。2 驾驶证...浏览全文>>
-
特斯拉试驾全攻略试驾特斯拉前,建议提前在官网预约,选择最近的体验中心。到店后,工作人员会引导你完成基础...浏览全文>>
-
宝马预约试驾全攻略想要体验宝马的驾驶乐趣?提前预约试驾是关键。首先,访问宝马官网或使用“宝马中国”官方A...浏览全文>>
-
道郎格试驾,感受豪华与科技的完美融合。一进入车内,高端质感扑面而来,真皮座椅、精致内饰,尽显奢华。智能...浏览全文>>
-
预约奇瑞新能源试驾,新手可按以下步骤操作:1 选择车型:登录奇瑞官网或官方App,浏览新能源车型,如艾瑞...浏览全文>>
-
奔驰GLE试驾预约,开启非凡旅程。作为豪华SUV的典范,GLE集优雅设计与强大性能于一身,为您带来前所未有的驾驶...浏览全文>>
- 特斯拉试驾全攻略
- 宝马预约试驾全攻略
- 奔驰GLE试驾预约,畅享豪华驾乘,体验卓越性能
- 零跑C16试驾全攻略
- 试驾海豚,轻松几步,畅享豪华驾乘
- 奇瑞预约试驾的流程及注意事项
- 小鹏G7试驾,新手必知的详细步骤
- 如何在 IPHONE 16E 和 IPHONE 16 之间进行选择
- 这个隐藏的 ANDROID 设置可以释放大屏幕的全部潜力
- 三星 ONE UI 7 更新:比预期更早到来
- IPHONE 15 PRO 和 PRO MAX 将很快获得视觉智能
- 使用这些必备的 ANDROID 应用程序改变你的主屏幕
- PS5 PRO 销量与 PS4 PRO 竞争
- 超薄 Galaxy S25 Edge揭晓其新功能
- Android 15 QPR2 Beta 2.1 将修复与崩溃相关的问题
- Garmin 的 Fenix 7 Pro Sapphire Solar 降至 591 美元
- Galaxy S25 Ultra 的 S Pen 可能会失去蓝牙功能
- 惠普在 CES 上推出搭载 Copilot+ 的全新一体机和迷你电脑
- 首批 Galaxy S25 系列壁纸来了 但只有两张
- 1,000 马力的 911 Turbo S GT-R 与杜卡迪一较高下