@Author : Lewis Tian ([email protected])
@Link : github.com/taseikyo
@Range : 2021-07-04 - 2021-07-10
本文总字数 1675 个,阅读时长约:3 分 7 秒,统计数据来自:算筹字数统计。
*Photo by Unknown on Sohu
天下熙熙皆为利来,天下攘攘皆为利往 —— 《史记》
- algorithm
- review
- CSS 与 CSS-in-JS 的性能比较(英文)
- tip
- 【git】全局配置和单个仓库的用户名邮箱配置
- 在 MAC 终端下打开 Finder
- share
- You pay, while I enjoy!
algorithm 🔝
review 🔝
单独写 css,和在 js 中写 css 这其实看个人习惯,有人习惯单独写(比如我),有人喜欢在 js 里面控制,我原来以为这其实都差不太多,实际上它俩性差差异还蛮大的。
TLDR: Don’t use runtime CSS-in-JS if you care about the load performance of your site. Simply less JS = Faster Site.
测试:
- Network (size of the JS and CSS assets, coverage, number of requests)
- Lighthouse audits (performance audit with mobile preset)
- Performance profiling (tests for page load, one for drag and drop interaction)
1、网络比较
Home page network stats comparison
Styled Component | Linaria | |
---|---|---|
Total number of requests | 11 | 13 |
Total size | 361kB/1.8MB | 356kB/1.8MB |
CSS size | 2.3kB/7.2kB | 14.7kB/71.5kB |
No. of CSS requests | 1 | 3 |
JS size | 322kB/1.8MB | 305kB/1.7MB |
No. of JS requests | 6 | 6 |
Search page network stats comparison
Styled Component | Linaria | |
---|---|---|
Total number of requests | 10 | 12 |
Total size | 395kB/1.9MB | 391kB/1.9MB |
CSS size | 2.3kB/7.2kB | 16.0kB/70.0kB |
No. of CSS requests | 1 | 3 |
JS size | 363kB/1.9MB | 345kB/1.8MB |
No. of JS requests | 6 | 6 |
the sum of CSS and JS for Linaria is still smaller than the size of the JS itself in Styled Component
2、覆盖范围
Coverage comparison – Home page
Styled Component | Linaria | |
---|---|---|
Size of unused CSS | 6.5kB | 55.6kB |
Size of unused JS | 932kB | 915kB |
Total size | 938.5k | 970.6kB |
Coverage comparison – Search page
Styled Component | Linaria | |
---|---|---|
Size of unused CSS | 6.3kB | 52.9kB |
Size of unused JS | 937kB | 912kB |
Total size | 938.5k | 970.6kB |
3、Lighthouse
Linaria 在大多数网络要素中表现得更好(在 CLS 中丢失一次)。有时甚至是很大的差距。例如,LCP 在主页上快 870 毫秒,在搜索页面上快 1.2 秒。使用普通 CSS 渲染页面不仅要快得多,而且还需要更少的资源。阻塞时间和执行所有 JS 所需的时间分别减少了 300 毫秒和大约 1.3 秒。
4、性能分析
使用样式化组件构建的屏幕有更多长时间运行的任务。与 Linaria 变体相比,这些任务也需要更长的时间才能完成。
下面是用样式化组件(上部)和 Linaria(下部)加载主页的性能图表的可视化比较。
5、用户交互的比较
Styled Component | Linaria | Diff | |
---|---|---|---|
Scripting | 2955 | 2392 | -563ms |
Rendering | 3002 | 2525 | -477ms |
Painting | 329 | 313 | -16ms |
Total Blocking Time | 1862.66 | 994.07 | -868ms |
6、总结
运行时 CSS-in-JS 对网页有明显的影响。主要用于互联网连接较慢或数据较昂贵的低端设备和地区。
作者:下次我开始一个新项目时,我将不再使用运行时 css in-js。我要么使用老式的 CSS,要么使用一些构建时的 CSS in-JS 替代方案,从 JS 包中获取我的样式。
tip 🔝
一般使用都会配置一个全局的用户名和邮箱
git config --global user.name "taseikyo"
git config --global user.email "[email protected]"
git config --list
如果你公司的项目是放在自建的 gitlab 上面,如果你不进行配置用户名和邮箱的话,则会使用全局的,这个时候是错误的,正确的做法是针对公司的项目,在项目根目录下进行单独配置:
git config user.name "Lewis Tian"
git config user.email "[email protected]"
git config --list
git config --list
查看当前配置,在当前项目下面查看的配置是全局配置 + 当前项目的配置,使用的时候会优先使用当前项目的配置
初次使用 Mac,各种不习惯,首先就是没有一个资源管理器(文件管理),也没有一个在当前文件夹打开终端(估计要配置)
还有就是无法在当前路径打开 finder,在 Windows 下直接 explorer .
就能打开资源管理器
我甚至直接 alias e='explorer .'
,所以只需要简单的敲 e 即可
然后也想实现这个方式,搜了一下,Mac 下也能实现:open .
share 🔝
余杭区,五常街道。
由于其中有着阿里巴巴、字节跳动和同花顺等等科技公司,使得其周边的住房在这段时间十分紧俏,即使一些破旧小区扔价高难求。
之前下午看完一个 loft,有点犹豫,晚上想通了再联系的时候就已经没了,僧多粥少就是这样。
更有甚者,不少房东把一间房子拆分、装修成 4 居室、5 居室,只为多租给几个人获得更高的回报。
而开发商也是满足户主,做些所谓的 4 钥匙房,也是为了获取高回报。
而外地来此谋生的各位初期只能忍受这种奇怪的现象,也许后面房源多了、工资涨了会考虑换一个环境/条件好一点的地方,但是受限于一年的租房合同还得花时间找下家,为房东续命,房东则是躺着收钱。
You work, you pay, and I'm laying and enjoying it!