前端技术周刊第3期

4,031 阅读4分钟

本期看点:本期为大家带来了 Airbnb 如何通过 Metro 获得更快的 JavaScript 构建速度和 2022 年 Reacrt 状态管理库总结等

🔥 本周热门

比较三种不改变原数组的数组处理方法 — 作者 Dr. Axel 对比了 for-of.reduce() 和 .flatMap() 这三种不改变原数组的数组处理方法。读完本篇文章你就可以选择最适合你自己的方法来处理数组。

2ality.com/2022/05/pro…

npm 安全更新:GitHub 从四月的攻击中得到的启示 — 上个月,GitHub,npm 注册表的管理者,报告 说被盗的 OAuth 令牌被用来访问某些私人仓库、私人软件包清单和元数据,以及 npm 用户账户数据。值得注意的是:  “GitHub 发现了一些 npm 注册表的明文用户凭证,这些凭证是在 npm 整合到 GitHub 日志系统后在内部日志中捕获的。”  注意:不要在版本控制(或日志)中存储秘文或凭证

github.blog/2022-05-26-…

TypeScript v4.7 发布 — 本次最主要的更新就是对 Node.js 的 ESM 的支持 -- 对这个特性的支持的过程还是比较艰辛的。本次更新对文件扩展名的依赖依然引起了争论。点击链接查看详情。

devblogs.microsoft.com/typescript/…

Next.js Layouts RFC:Next.js 的重大更新 — 如果你是 Next.js 的用户,那么建议你阅读本篇文章,因为一些重要的更新即将到来,特别是围绕路由、应用结构和布局(包括嵌套布局)。

nextjs.org/blog/layout…

快讯:

  • DigitalOcean 推出了一个 新的无服务器 功能平台 – 你可以直接在上面运行你的 JS 代码。

www.digitalocean.com/blog/introd…

Angular v14(目前处于 RC 阶段)即将发布 – 快来看看有什么新的内容

nevzatopcu.medium.com/what-is-new…

Netlify 聘请了 SolidJS 项目的创始人 Ryan Carniato 全职工作 – 这是他发布的文章

www.solidjs.com/

下周,Node v17 将不再维护

twitter.com/trott/statu…

Ghost 是一个由 Node.js 构建的 CMS 和博客平台,已经成为一个独立的生态系统,现在有一个新的主要版本:Ghost v5. 0

ghost.org/changelog/5…

版本发布:

  • Electron v19 – 支持了 Chromium v102、V8 v10.2 和 Node v16.14.2。
  • Neutralino.js v4.6 – 轻量级跨平台的桌面应用程序框架。
  • fast-check v3.0 – 基于属性的测试框架。
  • Knex v2.1.0 – 用于 Node.js 的 SQL 构建器。
  • Cypress v9.7.0 – 在浏览器中测试任何内容。
  • Storybook v6.5 – UI 组件开发工具。

版本发布:

  • Electron v19 – 支持了 Chromium v102、V8 v10.2 和 Node v16.14.2。
  • Neutralino.js v4.6 – 轻量级跨平台的桌面应用程序框架。
  • fast-check v3.0 – 基于属性的测试框架。
  • Knex v2.1.0 – 用于 Node.js 的 SQL 构建器。
  • Cypress v9.7.0 – 在浏览器中测试任何内容。
  • Storybook v6.5 – UI 组件开发工具。

📒  教程与趣事

什么是“边缘计算”?  — 本篇文章主要介绍了传统服务器、客户端(浏览器)、静态站点生成器以及云函数之间的优劣。

austingil.com/edge-comput…

Airbnb 如何通过 Metro 获得更快的 JavaScript 构建速度 — Airbnb 从 Webpack 迁移到 Metro(一个针对 React Native 的 JavaScript 构建工具,但 Airbnb 将其用于 Web 项目)以及它如何使他们的开发反馈”几乎瞬间完成“。

medium.com/airbnb-engi…

如何将我们的 Node.js 库转换成 Done (使用 Deno)  — 我们找到了一种 ”运行时适配器“ 模式,我们认为它代表了一种通用的方法,可能对其他希望支持 Deno 的库作者有用。

www.edgedb.com/blog/how-we…

2022 年 Reacrt 状态管理库总结 — 这个领域有很多选择,包括 Zustand、Recoil、XState,当然还有 Redux。

www.albertgao.xyz/2022/02/19/…

JSON 和 JavaScript 中字符串化的怪象 — 这不是最直截了当的方式,虽然至少有一个(复杂的)【书面规范】用于解释 JSON.stringify 的操作。

www.zhenghao.io/posts/json-…

从 SPA 到 MPA — 本篇文章主要介绍了当前 SPA 所面临的挑战,以及介绍了为什么需要向 MPA 转变。

nolanlawson.com/2022/05/21/…

避免 Puppeteer 的反模式

serpapi.com/blog/puppet…

让 Astro 在构建 Web 应用时,与众不同的 5 个方面

launchdarkly.com/blog/5-thin…

🛠  代码与工具

图片

🥷  Ninja Keys:向你的应用或网站添加命令面板或设置键盘快捷键 — 如果你在 GitHub 中使用过 Cmd/Ctrl+K 或者在 VS Code 中使用过命令面板,你会觉得很熟悉,它可以用在原生 JS 中或者与 Vue、React 或者 Svelte 一起使用。这里有Demo 页面Kbar 是专注于 React 的另一个同类库。

github.com/ssleptsov/n…

Filesize.js:将文件大小转为可读的字符串 — 举个例子,"123456 bytes" 可以转为 "120.56 KB",同时也它可以支持不同的转换标准。GitHub 仓库

filesizejs.com/

LunchboxJS:为 Vue 定制的 Three.js 渲染器 — 这里有完整的 文档,可以把它理解为 Vue 版的 react-three-fiber。

lunchboxjs.com/

React-Uploady v1.0:文件上传组件 — 该组件的目标是简单易用而且高度可定制,具有文件上传按钮,预览,拖放上传区域等功能。文档很完****善还有录屏演示

react-uploady.org/

EStimator.dev:现代 JavaScript 优化计算器— 该计算器可以计算出某一网站利用更现代的 JS 语法对于页面大小优化量。

estimator.dev/

Browser Extension Template:快速创建浏览器扩展的项目框架 — 有点类似 create-react-app 那样。

github.com/Debdut/brow…

以上就是本期内容.