每周分享(第 173期)

113 阅读3分钟

新闻、观点、有趣

JavaScript 中如何取消请求
众所周知,JavaScript 实现异步请求就靠浏览器提供的两个 API —— XMLHttpRequest 和 Fetch。我们平常用的较多的是 Promise 请求库 axios,它基于 XMLHttpRequest。 本篇带来 XMLHttpRequest、Fetch 和 axios 分别是怎样“取消请求”的。 闲话少说,冲就完事了~

深度理解 React Suspense
在 16.6 版本之前,code-spliting 通常是由第三方库来完成的,比如 react-loadble(核心思路为: 高阶组件 + webpack dynamic import), 在 16.6 版本中提供了 Suspense 和 lazy 这两个钩子, 因此在之后的版本中便可以使用其来实现 Code Spliting。

教程、技巧

前端工程化-基于 Monorepo 的 lerna 模块(从原理到实战)
lerna 解决了哪些痛点 资源浪费 通常情况下,一个公司的业务项目只有一个主干,多 git repo 的方式,这样 node_module 会出现大量的冗余,比如它们可能都会安装 React、React-dom 等包,浪费了大量存储空间。

调试繁琐 很多公共的包通过 npm 安装,想要调试依赖的包时,需要通过 npm link 的方式进行调试。

资源包升级问题 一个项目依赖了多个 npm 包,当某一个子 npm 包代码修改升级时,都要对主干项目包进行升级修改。(这个问题感觉是最烦的,可能一个版本号就要去更新一下代码并发布)

lerna管理前端模块最佳实践
前端开发package面临的问题 在最初开开发package的时候,还属于一种刀耕火种的阶段。没有什么自动化的工具。发布package的时候,都是手动修改版本号。如果packages数量不多还可以接受。但是当数量逐渐增多的时候,且这些packages之间还有依赖关系的时候,对开发人员来说,就很痛苦了。工作不仅繁琐,而且需要用掉不少时间。

从 0 到 1 实现 React 系列 —— JSX 和 Virtual DOM
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/...)

浅谈:为啥vue和react都选择了Hooks??
初步了解 Hooks 在 vue 与 react 的现状

听一听本文作者关于 Hooks 的定义和总结

弄懂“为什么我们需要 Hooks”

进行一些简单的 Hooks 实践

JS计算精度问题解决
项目需要前端动态计算用户选的商品的总价(单价*数量)和购物车的总 价格时发现关于 JavaScript 浮点数计算精度不准确问题。 在控制台输入0.1+0.2也能发现此问题。

深度剖析 VS Code JavaScript Debugger 功能及实现原理
本文将从 VSCode JavaScript Debugger 的功能入手,从源码角度分析其实现对应功能所使用的技术手段及优秀的代码设计,让大家对其中的功能及实现原理有大致理解。