OpenReplay 博客
JavaScript 生成器的使用场景
JavaScript 生成器按需产出值,适用于惰性迭代、异步分页以及基于 Iterator Helpers API 构建可组合的数据管道。
如何在 TypeScript 项目中组织类型定义
在 TypeScript 项目中有效组织类型定义,通过明确的同置策略,覆盖内联文件、共享目录与 ambient 声明文件三类场景。
MCP Apps:为 AI 对话添加交互式 UI
MCP Apps 支持在 AI 对话中嵌入交互式 UI 组件,介绍 MCP 服务器如何通过 ext-apps SDK 标准渲染仪表盘与表单。
使用 Koa 构建你的第一个 API
通过配置路由、解析 JSON 请求体并应用中间件级联模型,使用 Koa 构建 REST API,实现 GET 与 POST 端点的处理。
在 VS Code 中使用 Error Lens 更好地查看错误
Error Lens 将 ESLint 和 TypeScript 的诊断信息内联显示于 VS Code 中,助前端开发者无需离开编辑器即可快速发现并修复错误。
何时使用 user-select: none(以及何时它会成为 UX/可访问性陷阱)
深入辨析 CSS user-select: none 在交互控件中的合理用途,以及它对可访问性、翻译工具和依赖文本选择的用户造成的潜在危害。
如何测量 JavaScript 性能
借助 DevTools、Performance API 和 Core Web Vitals 分析 JavaScript 执行,识别性能瓶颈并准确测量真实用户的 INP。
虚拟滚动:构建高性能界面
虚拟滚动只渲染可见的 DOM 节点,使大型数据集保持流畅。介绍窗口化、overscan 机制以及 TanStack Virtual 等库的工作原理。
OpenClaw:一个新的开源 AI 助手
OpenClaw 是可自托管的 AI 智能体,可在自有硬件上执行 shell 命令、控制浏览器,并集成 Slack、Telegram 和 WhatsApp。
为 Web 开发者解释 Streams
通过 Web Streams API、ReadableStream 和 TransformStream 对 fetch 响应逐块处理,可降低内存压力并提升性能。
键值数据库(如 Redis、Memcached)的工作原理
Redis、Memcached 等键值数据库基于内存哈希表实现快速查找,广泛用于前端后端系统的缓存与会话存储。
使用 abs() 处理 CSS 中的绝对值
CSS 的 abs() 函数可安全处理带符号的自定义属性,适用于间距、动画时序和布局计算,无需借助 JavaScript 实现。
什么是 Lynx.js?初学者指南
Lynx.js 是字节跳动推出的跨平台框架,基于 React、原生 CSS 和双线程架构,渲染真正的 iOS 与 Android 原生界面。
使用 OpenAPI 和 TypeScript 构建类型安全的 API 客户端
介绍如何使用 openapi-typescript、openapi-fetch 和 Orval 从 OpenAPI 规范生成 TypeScript 类型,构建类型安全的 API 客户端并消除运行时错误。
在 JavaScript 中实现二分查找
在 JavaScript 中实现迭代与递归两种二分查找,了解有序数组的前提要求,并判断二分查找相比线性查找的适用场景。
Linux 文本处理速查表
借助 grep、sed、awk、ripgrep 和 jq 提升终端生产力,高效解析日志文件、提取列数据并转换结构化文本。
CSS Aspect Ratio 工作原理
CSS aspect-ratio 控制盒模型尺寸,替代 padding hack,并在 flexbox 与 grid 布局中配合 object-fit 防止布局偏移。
如何在 Vue 中实现 Toast 通知
介绍通过自定义 composable 或 Vue Toastification 构建 Vue 3 toast 通知,涵盖无障碍标记与 Composition API 模式。
每个 Web 开发者都应该了解的缓存基础知识
正确运用浏览器缓存、CDN 缓存、Cache-Control 响应头、ETag 及 Last-Modified 验证技术,可有效提升 Web 应用的加载性能。
在浏览器中显示人类可读的时间
介绍如何借助 Intl.DateTimeFormat、Intl.RelativeTimeFormat、Intl.DurationFormat 及 Temporal 在浏览器中格式化 UTC 时间戳,无需引入第三方库。
CSS Grid Lanes:全新的原生瀑布流布局
原生 CSS Grid 瀑布流布局的实现方式、浏览器支持现状,以及在不依赖 JavaScript 库的情况下构建 Pinterest 风格布局的降级策略。
如何处理 Uncaught (in promise) TypeError 错误
通过 try catch 块、dot catch 处理器及 unhandledrejection 事件,修复浏览器中的 Uncaught in promise TypeError 错误。
面向开发者的最佳 Git UI 工具
对比 Fork、GitKraken、Tower、Sourcetree、GitButler 与 Lazygit,助力在分支管理、变基及冲突解决工作流中选择合适的 Git UI。
JavaScript 中 Map、Set 和 Object 有什么区别?
对比 Map、Set 和 Object 在 JavaScript 中的键处理方式、迭代顺序及性能特征,以便选择合适的数据结构。