大家好,这里是大家的林语冰,您现在收看的是第 50 期《前端周报》。
视频解说请临幸 前端周报@bilibili。
每周必看
Chrome M117 引入了一个新型优化编译器:Maglev(磁悬浮)。Maglev 介于现存的 Sparkplug 和 TurboFan 编译器之间,扮演着快速优化编译器的角色,可以生成足够好的代码,速度惊人。
Maglev 是一个简单的 SSA(单静态赋值)筑基的 JIT 编译器,设计动机是用来弥补 Sparkplug 和 TurboFan 之间的差距,现在可用于桌面 Chrome,并将很快会在移动设备上推出。

这位大佬科普了今时今日使用 React 的利弊与权衡,React 之利在于其庞大的生态、跨平台能力和组件筑基架构等,React 之弊在于新手劝退、概念复杂和集成复杂等。
React 的复杂性和对高级 JS 概念的依赖带来了曲折的学习曲线,尤其是对于新手或尚未精通 JS 的人。大佬根据今年的 React 趋势进行总结并展望明年的 React 路线。
Meta(前 Facebook)开源了全新的 CSS-in-JS 库 ------ StyleX,由 JS 语法和编译器组成,可满足大型 App、可复用组件库和静态类型代码库的要求。
以前的 Facebook 网站使用了类似于 CSS 模块的东东,并且遇到了各种问题。几年前,大佬使用 React 从头开始重建 facebook.com 时,构建了 StyleX。StyleX 是一个 CSS-in-JS 解决方案,而不是 CSS-in-React 技术方案,所以可以在任何 JS 框架中集成。
版本官宣

Electron 允许我们使用 JS/HTML/CSS 构建跨平台桌面 App,基于 Node.js 和 Chromium,比如 VS Code 和 GitHub 桌面端等人气产品就是使用它实现的。
Electron 团队官宣 v28 正式升级,亮点包括但不限于支持 ESM 模块,Nodejs 升级到 v18。

Redux 团队官宣 v5.0 正式发布,此版本是所有 Redux 生态系统的主版本升级之一,完整生态包括但不限于:Redux Toolkit(工具包)2.0、Redux core(核心库)5.0 和 React-Redux 9.0。
有意思的是,今年某知名项目弃用 TS,一时"TS 已死"之风盛行。而 Redux@5.0 则使用 TS 完全重构,弃用 JS,即使其核心源码有且仅有几百行。
ES6 技能树

地球人都知道,JS 是一门混合范式编程语言,而 OOP(面向对象编程)正是其中一种重要的编程范式,设计模式则是 OOP 的编程精髓。
这位大佬根据传统设计模式的分类 ------ 创建型/结构型/行为型模式,进一步软科普了 JS 常见的设计模式,新手友好。
设计模式作为 OOP 的集大成者,在 JS 框架中的应用场景也司空见惯,举个栗子,Vue 就使用了观察者模式和代理模式等设计模式。
粉丝福利
共享一道回头率超高的面试题,面试官问:请您简单列举 Vue 常用的任意 3 种设计模式及其应用场景。


这位大佬科普了 JS 原型的决策和起源,深入探讨了其中的设计失误,以及这些因素如何影响我们今天编写 JS 的方式。
在经典的 OOP 中,class
是重要概念,而 JS 在 ES6 才引入了 class
关键字,所以有人错误地认为,ES6 之前的 JS 不是面向对象编程语言。
广告赞助(谢谢老板!)
面向前端的 AI 工程师之路
ChatGPT 毫无疑问是今年的"版本之子",AIGC 找到了"流量密码",前端和 AI 梦幻联动或许能迸发新的火花。
这位大佬制作了一套面向前端的 AI 工程师课程,可以利用 OpenAI GPT-4 模型来分析股价,可以制作一个辅助聊天机器人,可以实现电影推荐引擎等。
此课程要求有一定的 Web 开发基础和 JS 技能。
前端工具人
ClassyFont 是一个在线的字体生成 CSS 工具,上传您的字体,此工具将生成必要的 @font-face
CSS 代码。
Pravatar 是一个头像的 API,您可以调用 API 访问随机图像、指定大小,或者从所有可用的图像中选择特定图像。
如果您的后端 API 尚未开发完毕,或者您的个人项目没有头像数据,可以体验此工具。
Design2Code 是一个开源项目,使用 AI 基于任何网页设计屏幕截图生成对应整洁的 HTML/CSS 代码,支持 sketches、Figma 等。
tsParticles 可以 DIY 各种粒子特效。
Timenames 可以用于生成唯一文件名,但不是基于时间戳的方式。

Nano Events 是一个精简的 JS 事件发射库,核心代码有且仅有几十行,建议全文背诵。
粉丝福利
共享一道回头率超高的面试题,面试官问:请您实现一个简单的 event emitter,这个库就是答案(99 分)。
高玩攻略

了解某物如何工作的最好方法之一是自己构建它。这位大佬科普了自己实现一个现代 JS 框架的整体思路。
后 React 时代出现了一大坨 JS 框架,但它们的套路大抵相同,包括但不限于:
- 使用响应性更新 DOM
- 使用克隆模板渲染 DOM
- 使用现代 Web API
您现在收看的是《前端周报》系列,学废了的小伙伴可以订阅专栏合集,我们每周六佛系投稿,欢迎持续关注前端开源技术。谢谢大家的点赞,掰掰~
