欢迎来到《前端精选》,这里记录有趣的见闻,每周一发布。
封面
居庸关
话题
前端的上限
今年以来前端热度迅速下降,一方面大佬纷纷弃坑,另一方面前端外包化越来越普遍,由此不禁要思考这个职业的上限在哪里。
个人认为职业上限可以拆解为 平台上限 和 个人能力上限,正如在一楼往上跳和在三楼往上跳,相对脚底的高度相差无几,但相对地面的高度却有悬殊。纯前端作为运行在浏览器的程序,受到浏览器这一平台限制,与此同时,浏览器也受到其他端程序的激烈竞争,从这个角度看,以纯前端为主体的前端职业上限,必然是不高的。
这也解释了前端相对于后端更难晋升的现象,倒不一定前端比后端能力差多少,更多的是后端动用整个计算机、乃至集群的资源,而前端大部分时间还在浏览器沙盒内。我觉得破局的方向有两个:一是横向做 跨端,二是纵向做 全栈,其思路都在于提升平台上限。
你有哪些前端职业上限的思考,欢迎留言讨论。
见闻
DevTools 打开时 console.log 会占用内存,这个一般大家都认同,但是 DevTools 关闭时是否还有内存泄漏,却存在争议。本文作者从源码角度,求证了这个问题结果,答案是:会。
这是一个 JavaScript 实现的算法和数据结构大全,涵盖绝大部分使用场景,是一个学习算法、刷题的优秀材料。
随着 ES6 发展,一些常用的方法比如 starsWith、every、flat 等被添加进来,之前需要引第三方苦库才能用的方法现在可以直接使用了。本仓库列举了 Lodash/Underscore 里的函数的替代方案,本人以为,一些可以直接用 ES6 方法的推荐用 ES6 方法,但一些自实现的,为了健壮性和可维护性,还是应该使用 Lodash 或 Underscore。
React 的组件化和 JSX 强大的表达力,给前端注入了无尽的活力,但是它的粗粒度 re-render 带来的性能问题,特别在移动端广受诟病。Solidjs 采用响应式的方式,做到了只有改变的地方才更新,它和 Sveltejs 思路类似,但是写法上,前者偏 React,后者偏 Vue。
文章全面介绍了关于暗黑模式适配的内容,包括主题切换、获取系统主题、保存用户设置、处理 UA 样式等,还讨论了一些暗黑模式下的设计考量,如果你需要对网站进行暗黑适配,这篇文章会是个不错的资料。
这是一个仅使用一个 img 标签和 css 就实现的头像 hover 效果,主要使用了 background 和 outline 实现外层圆圈,配合 scale 和 css 变量实现动效,非常巧妙。
这是一个能根据 js 代码生产流程图的工具,可以直观看到一段代码的执行流程和逻辑,其原理是先用 Babylon 将代码解析成 AST,然后将 AST 转成流程树,最后根据流程树生成 SVG 图。
本文介绍了原生方法 structuredClone 的用法,并和其他几种拷贝方法进行了比较:对象展开运算符、JSON.parse/JSON.stringify、Lodash cloneDeep,再介绍了哪些支持、哪些不支持使用 structuredClone 拷贝,最后介绍了其浏览器兼容性。
本文介绍了 TCP 和 QUIC 的实现和主要区别,有利我们理解 HTTP1 和 HTTP3,值得一读。
这是一个 React 虚拟 DOM 替代方案,号称可以让 React 快70%,而使用它只需要给组件套一层 block(),配合 webpack 插件 million/compiler。对项目侵入较小,可以一试。