OpenReplay 博客
在 React Server Components 中获取数据
在 React Server Components 中用 async 函数获取数据,理解 Next.js 15/16 的缓存默认值,并用 Promise.all 避免请求瀑布。
使用 BroadcastChannel 实现浏览器标签页同步
BroadcastChannel可让标签页实时同步,涵盖structured clone消息、清理、降级方案,以及认证、购物车和主题状态的实用模式。
使用文本扩展器处理 Git、PR 和 AI 提示词
面向 Git、PR 和 AI 提示词的 Espanso 片段:用 shell、剪贴板和光标提示构建上下文感知文本扩展。
如何在不使用 JavaScript Hack 的情况下为 display: none 添加动画
用 CSS 通过 allow-discrete 和 @starting-style 为 display none 添加动画,并说明 dialog、popover 的 overlay 处理和浏览器支持。
TypeScript `satisfies` 操作符实用指南
用配置示例讲解 TypeScript 的 satisfies 运算符,保留窄类型推断,并说明何时用它替代 as 或冒号类型注解。
JSPI 详解:JavaScript 与 Wasm 之间更优雅的桥梁
JSPI 连接 JavaScript 和 WebAssembly,让同步 Wasm 调用 fetch 等基于 Promise 的 API,并介绍 Suspending、promising 和浏览器支持。
使用 caffeinate 让你的 Mac 在夜间 Agent 运行期间保持唤醒状态
在 Mac 上用 caffeinate 让 Claude Code、Codex 或构建任务整夜保持运行,用 pmset 验证 assertion,并了解合盖限制。
5个提升笔记质量的Obsidian技巧
5个Obsidian笔记技巧:MOC、Dataview、Bases、Canvas、Mermaid、复盘仪表板与Git同步,让Markdown库更易复用。
集成测试与端到端测试
Web应用的集成测试与端到端测试对比:清晰定义、JS工具,以及何时使用Vitest、MSW、Playwright或Cypress。
JavaScript 终于学会了自我清理
JavaScript 的 Explicit Resource Management 使用 using、await using、DisposableStack 和 SuppressedError,确定性清理文件、锁、socket 和连接。
关系型数据库常见设计错误
避开Postgres和MySQL中的常见关系型数据库设计错误:约束、主键、索引以及正确的时间戳存储。
在 JavaScript 中处理时区而不抓狂
用UTC时间点、IANA时区ID、Intl.DateTimeFormat、Temporal和DST安全规则处理JavaScript时区,正确存储与显示日期。
Node.js 双格式 CJS/ESM 构建的终结
Node.js 现已支持 require(esm),让 ESM-only 成为许多库的默认选择。了解何时放弃 CJS、避免 top-level await 并安全迁移。
大型项目的 TypeScript 最佳实践
大型 TypeScript 项目实践:strict 模式、noUncheckedIndexedAccess、exactOptionalPropertyTypes、生成类型、运行时校验与 CI 约束。
使用 Bun 内置 Redis 客户端
Bun 内置 Redis 客户端指南:连接、类型化命令、Pub/Sub、自动流水线、限流,以及何时改用 ioredis。
何时使用 CSS `if()` 与容器样式查询
对比 CSS if() 和 container style queries:何时使用、语法陷阱、range syntax 以及 2026 年浏览器支持。
如何使用 Fastify 构建 REST API
使用 Fastify v5 和 Prisma 构建 REST API,涵盖 JSON Schema 验证、插件、装饰器、钩子与 TypeBox 类型化,实现 posts 的 CRUD。
当你不需要组件库的时候
为何在2026年,实用类CSS和headless primitives常比完整组件库更合适,并附何时使用的判断清单。
10道JS面试题及其真正考察的内容
用提升、闭包、this、事件循环和类型转换解析10道 JavaScript 面试题,并说明输出结果与考点。
WordPress性能优化:实践指南
按优先级优化WordPress性能:主机与缓存、图片优化、插件管理、CDN压缩,并用真实用户数据验证。
使用 Background Sync 实现离线表单提交
将表单提交存入 IndexedDB,用 Background Sync 和在线回退重放,并通过 Idempotency-Key 防止重复订单。
5个值得现在就收藏的GitHub仓库
面向JavaScript和TypeScript开发者的5个GitHub仓库:Biome、ast-grep、Zod、Tauri和Ollama,涵盖lint、codemod、校验、桌面应用和本地AI。
构建无障碍模态框:原生 `<dialog>` 还是第三方库?
无障碍模态框该用原生<dialog>还是库?涵盖焦点管理、inert 背景、ESC 关闭、滚动锁定,以及何时仍需 focus trap。
使用 eslint-plugin-unicorn 提升 JavaScript 代码质量
适用于 ESLint 10 的 eslint-plugin-unicorn:使用 flat config 安装,选择 recommended 或 unopinionated 预设,并用可自动修复的规则提升 JS 和 TS 质量。