摘要: 什么是 pnpm ? pnpm 是 npm 的替代者,命名是“Performant NPM”的简写,它更快、更节省空间,并且解决了 npm 的一些固有问题。在这篇文章中,我将会讨论它是如何工作的,并说明为什么 pnpm 是 npm 或 yarn 的完美替代品。 使用 npm 或者 yarn 的问题: 阅读全文
posted @ 2022-12-14 21:16 WinjayYu 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 和 UNIX 系统中有两种类型的链接,Symbolic Links 和 Hard Links, 它们都是用 ln 命令创建的,功能相似但有一些区别。 计算机的 filesystem 存储文件的元数据,如 permissions、modification times,以及文件数据在底层 阅读全文
posted @ 2022-11-28 17:28 WinjayYu 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 深入了解一个库最好的办法是直接去看源代码,学习作者的设计模式、运行原理、代码风格等。并且动手跑起来,碰到不懂的地方打断点或者打印关键信息,一步一步去琢磨。 很多流行库发展多年后,优化工作越做越好,但同时会变得比较臃肿,代码量大且文件分散,直接看最新版本的源代码可能无从下手。我是这么实践的,先去看它的 阅读全文
posted @ 2022-11-19 11:27 WinjayYu 阅读(68) 评论(0) 推荐(0) 编辑
摘要: css 隔离 同时加载多个应用可能出现样式互相覆盖的问题,特别是引入了第三方 UI 库的时候。我们采取了两个方案: 对于面向客户的页面,我们使用 css-in-js 的模式(Emotion css)开发自研的组件库和页面,它生成的 class 名字是一个随机字符串,避免了同名覆盖问题。另外样式都是以 阅读全文
posted @ 2022-10-25 18:38 WinjayYu 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 目前流行的几个微前端框架 Single SPA。它的官网将自己定义为 “一个用于前端微服务的 javascript 路由器(A javascript router for front-end microservices)”,实现了一套路由监听并加载子应用的功能,并且需要子应用暴露特定的注册、挂载、卸 阅读全文
posted @ 2022-10-16 17:29 WinjayYu 阅读(314) 评论(1) 推荐(0) 编辑
摘要: 随着前端的业务逻辑日益复杂,工程代码越来越庞大臃肿,导致开发效率低、版本发布困难、技术栈难升级等问题。前些年微前端概念的提出,正是为了解决这些疼点,目前在行业内得到了比较普遍的推广。 Airwallex(我的雇主)的前端应用在2020年遇到了这个瓶颈,当时面向客户的前端产品代码全部存放在一个 rep 阅读全文
posted @ 2022-09-23 10:52 WinjayYu 阅读(418) 评论(0) 推荐(0) 编辑
摘要: useTransition 先看看 useTransition 想象这样的场景,页面有个 input,用户输入后会去请求 API 获取数据。如果没有额外做一些优化会发生这样的情况, 多个搜索调用被执行,造成浪费。 如果用户输入的太快太多,页面可能会出现卡死。 为了解决这一问题,在单线程上运行的 Re 阅读全文
posted @ 2022-03-30 22:03 WinjayYu 阅读(416) 评论(0) 推荐(0) 编辑
摘要: React 最流行的三个 form 库 redux-form, formik 和 react-hook-form Package size redux-form 26.4k formik 15k react-hook-form 8.7k 第三方表单验证 redux-form 不支持,需手动验证 fo 阅读全文
posted @ 2020-10-10 15:31 WinjayYu 阅读(1006) 评论(2) 推荐(1) 编辑
摘要: Mac os文件名大小写不敏感,但是linux是大小写敏感的。 + 让我们代入一个场景, 创建一个新文件,你习惯以小写字母开头,接着在其他module中import,看起来一切都正常,emmm,确实没有任何问题,但是你突然改了注意,把刚刚那个文件改成react component,按照约定那就要把文 阅读全文
posted @ 2019-10-10 17:27 WinjayYu 阅读(1280) 评论(0) 推荐(0) 编辑
摘要: 你还在为代码中放入长长的模版字符串所苦恼吗,如下图代码片段: ps:这个是grqphql client在nodejs后端项目的实践,如果你是在前端使用graphql,并使用了webpack,那么这些问题你都不用担心,因为有现成的轮子供你使用,参见相关loader:https://github.com 阅读全文
posted @ 2019-03-03 13:27 WinjayYu 阅读(3123) 评论(0) 推荐(0) 编辑