Fighting
几个大幅提升效率的 vim 插件
vim-surround https://github.com/tpope/vim-surround 写前端代码时非常高频的几个操作: * 标签替换 比如,将 div 替换成 p <div>...
如何打造私人影视系统
为什么不是爱优腾芒? 影视资源非常有限 内容阉割严重 会员体系五花八门 一窥其貌 PC Web 端首页 剧集首页 单季详情 系列 移动端 自建优势 观影自由 片源不受限 场地不受限 高质量观影体验 蓝...
React 性能优化那些事儿
先看两个例子 当 Parent 中的 value 发生更新时,A、B、C 中哪些组件会发生 re-render?为什么? function Parent() { <Provider value=...
Why are function parameters bivariant?
背景 为什么函数参数是双变? 这个问题实际上在 TS2.6 之后已经不完全成立了:https://www.typescriptlang.org/docs/handbook/release-notes/...
读《Micro State Management with React Hooks 》小记
Micro State Management with React Hooks 的作者是Daishi Kato,在 React 社区属于非常活跃的大牛。我们在项目中使用的 jotai 就出自他。 花了...
VS Code 源码之:Event
代码路径为: src/vs/base/common/event.ts 基础接口 和一般的 event 类工具定义事件为字符串不同,这里 Event 的定义为函数,: interface Event&l...
homebrew 替换国内源
众所周知的原因,在国内使用 homebrew 是非常慢的,而更坑的是,要给其换源也很麻烦,从网上搜索的帖子来看,不止我一个人浪费几小时还换失败的。 这里记录一个大牛的解决方案: /bin/zsh -c...
Linux Shell 的一些零碎姿势
最近搞工程化,需要写不少 shell 脚本,零零碎碎看了些文档,对比之前看到就头晕眼花,现在总算可以磕磕绊绊写出一些逻辑了。这里随手记录一些自己碰到的问题及姿势。 What’s the d...
基于 Web Workers 的 SimpleRPC
Web Workers 为前端提供了多线程执行代码的可能,在 worker 内做 CPU 密集型任务再合适不过了。 worker 中的代码在隔离的环境执行,无法访问、操作 DOM,避免了资源竞争,与宿...
代理类方法时类型无法匹配的问题
经常会有需求对一个对象/类的方法做代理调用,比如如下对象: const fns = { say: (msg: string) => msg, sum: (a: number, b: number...
react 自定义渲染
本周参加了一次内部的技术分享,主题是甘特图项目技术改造,将原来基于 DOM 的绘制改为基于 canvas 绘制,其采用 React 描述 canvas 的思想让人眼前一亮,大致架构分为了三层: 1. ...
使用 babel-plugin-macros 解决自动引入的问题
关于 babel-plugin-macros 的介绍,简单可以总结为一句话:“在代码中显式声明需要在编译时需要做的事情”。 为什么需要“显式”?官方文档有介绍使用 babel plugin 方式面临的...