Now vibe coding, so learning hammer FE ?
标签:#前端 #React #性能优化 #虚拟滚动

链接:https://rednegra.net/blog/20260212-virtual-scroll/

总结:本文介绍了 HighTable 组件实现数十亿行数据表格渲染的五大核心技术:懒加载仅获取可见数据、表格切片仅渲染可见行、无限像素突破浏览器高度限制、双模式滚动兼顾精确与快速导航、两步随机访问支持键盘操作。这些方案完全基于原生 Web 技术,无需 Canvas 或自定义滚动条即可实现高性能大数据表格。

文章要点:

- 懒加载:通过 DataFrame 接口仅加载视口可见单元格,将 1TB 数据集的内存占用从全量降至约 3KB(30 行),数据异步获取并缓存
- 表格切片:引入 Canvas 层作为定位参考,仅渲染可见行(约 30 个 DOM 元素),而非全部数十亿行,保持渲染性能恒定
- 无限像素:针对浏览器最大高度限制(Firefox 约 1700 万像素),设置 800 万像素阈值,超过时通过缩放因子降低滚动条分辨率,实现无行数上限的导航
- 像素级精确滚动:实现局部滚动(小幅度精确移动)与全局滚动(大幅度位置跳跃)双模式,通过 globalAnchorlocalOffset 状态管理,确保任意行可达(支持至 2 万亿行)
- 两步随机访问:解耦垂直与水平滚动逻辑,支持键盘导航(方向键、Ctrl+方向键)和程序化跳转,通过标志位控制滚动时序避免冲突
- 技术选型:完全基于原生 Web 平台(HTML 表格、CSS 绝对定位、JavaScript 事件),利用 position: sticky 实现表头固定,无需 Canvas 或自定义滚动条
标签:#前端 #TypeScript #ReactQuery #TanStack

本文通过实现一个完全类型安全的 refetchedQueryOptions 辅助函数,深入探讨了 TypeScript 泛型、条件类型和函数重载的高级用法。文章从基础概念入手,逐步解决如何根据服务器函数是否接受参数来动态调整函数签名的问题,最终利用泛型约束、条件类型推断和函数重载,实现了在保持类型安全的同时,让参数变为可选或必填的灵活 API 设计。

文章要点:
- 泛型可视为"类型的函数参数",通过 extends 约束可限制类型范围,保持返回值类型推断的准确性
- 条件类型(T extends U ? X : Y)配合 infer 关键字可实现类型提取和类型判断,如从函数参数中提取 data 属性类型
- 函数重载允许定义多个函数签名,实现根据输入类型动态调整参数列表(如让参数在需要时必填,不需要时省略)
- 通过组合泛型约束、条件类型和函数重载,可构建复杂且类型安全的工具函数,解决实际开发中服务器函数与查询选项同步的类型难题

<> Fun with TypeScript Generics
Lodash 已经纳入了 openJS 基金会,现在是完全社区主导!
npx is-my-node-vulnerable 查当前 node 版本是否安全
#AI AI正重塑软件工程:初级岗位可能萎缩也可能跨行业爆发,技能要求从写代码转向“懂AI+验证AI”,角色从执行者进化为系统编排者,T型通才胜过单一专才,传统CS教育正被实战导向新路径补充——未来两年,能持续学习、善用AI放大能力、保持批判思维的工程师将主导这场变革。

https://baoyu.io/translations/2026/01/12/next-two-years-software-engineering
Back to Top