呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#优质博文 #前端 #新动态 #react #course
有意思。
🗓 React Status #434
author Peter Cooper
有意思。
🗓 React Status #434
AI 摘要: 本期 React Status 通讯(#434,2025年7月2日)聚焦于 React 生态系统的最新动态与讨论热点,涵盖了 React 开发中的复杂性问题、工具库更新、技术文章、会议回顾以及社区活动等内容。特别值得关注的是 Mario Brizic 的一篇挑衅性文章,讨论了 React 在构建现代 SPA 应用时可能带来的复杂性与混乱,引发了 Reddit 和 Hacker News 上的广泛讨论。此外,还包括 Vercel Ship 2025 会议的亮点回顾、新工具和框架的介绍,以及多篇关于 React 开发技巧的文章。
1. 主文章:React Still Feels.. Foolish, and No One is Talking About It?
• 作者 Mario Brizic 探讨了 React 在构建复杂 SPA 应用时的痛点,指出其灵活性可能导致代码混乱,强调这并非 React 独有问题。
• 该文在 React 社区内引发了激烈讨论,尤其是在 Reddit 和 Hacker News 上。
2. 简讯 (IN BRIEF)
• Reactylon:基于 Babylon.js 的 React 3D/扩展现实框架,新增展示页面。
• React Advanced London:11 月在伦敦举办的线上线下 React 活动。
• Anthropic 新功能:通过 Claude 构建和分享带有 React UI 的 AI 应用。
3. 会议回顾:Vercel Ship 2025 Recap
• 总结 Vercel 年度会议的最新公告,包括 AI SDK 更新、Fluid 计算选项、Vercel Sandbox、滚动发布功能和机器人检测等。
4. 技术文章
• 《Using useOptimistic to Make Your App Feel Instant》by Kent C. Dodds:介绍如何使用 useOptimistic 提升应用响应速度。
• 《A Study Guide to Data Fetching in React》by React Practice:React 数据获取的学习指南。
• 《Automating Frontend Accessibility with Storybook 9》by Dominic Nguyen:探讨如何利用 Storybook 9 自动化前端无障碍性测试。
5. 代码、工具与库
• Time Picker:基于 shadcn/ui 的日期/时间选择组件,简洁优雅。
• Tuono:React/Rust 全栈框架,结合 Next.js 风格与 Rust 后端开发。 #rust 【啊?6】
• react-xtermjs:为 React 应用添加 Xterm.js 终端体验。
• UI Builder 2.0:Figma 风格的可视化组件构建工具。
• AG Charts v12.0、Yet Another React Lightbox 3.24、Schedule-X 2.35、Ink 6.0.1 等工具和库的更新与介绍。
6. 深度内容
• 介绍了 Vercel 开发的开源字体 Geist,支持多语言和多种字重。 #font
• Josh Justice 关于在 React 中使用 MUI X Charts 创建高级折线图的教程。
• Neobrutalism:基于 shadcn/ui 的视觉组件库。
• 关于 React 应用样式设计的思考,作者支持 Tailwind 方案。
• 使用 Kamal 2 部署 Next.js 应用
• 使用 Framer Motion 创建 “Sticky” 搜索交互的教程
• 在最后介绍了编辑团队的其他技术通讯,如 Ruby Weekly、JavaScript Weekly、Node Weekly 等,覆盖多个技术领域。
author Peter Cooper
#优质博文 #前端 #react
useOptimistic to Make Your App Feel Instant
author Kent C. Dodds
useOptimistic to Make Your App Feel Instant
AI 摘要:本文由 Kent C. Dodds 撰写,详细介绍了 React 18.3 版本中引入的 useOptimistic Hook 如何通过乐观更新提升应用的用户体验。文章从乐观更新的基本概念入手,探讨了其在处理表单提交、状态更新等场景中的应用,强调了如何在不等待服务器响应的情况下即时反馈用户操作,从而让应用感觉更快、更流畅。同时,文章提供了具体的代码示例和注意事项,帮助开发者在实际项目中正确使用这一 Hook。
1. 引言:乐观更新的概念
• 介绍了什么是乐观更新(Optimistic Updates),即在用户操作后立即更新 UI,假设服务器请求会成功,而无需等待实际响应。
• 强调了这种方法对用户体验的提升,尤其是在网络延迟较大的情况下。
2. useOptimistic Hook 的基本用法
• 详细讲解了 useOptimistic 的 API,包括如何定义初始状态、更新函数以及如何与表单交互结合。
• 提供了一个简单的表单提交示例,展示了如何在用户输入后即时更新 UI。
3. 处理复杂状态和回滚机制
• 探讨了当服务器请求失败时,如何通过 useOptimistic 回滚到之前的状态,确保数据一致性。
• 提供了代码片段,说明如何处理错误并通知用户。
4. 与 React 生态系统的集成
• 讨论了 useOptimistic 如何与其他 React Hooks(如 useState 和 useEffect)配合使用。
• 提到与数据获取库(如 React Query)的结合,增强乐观更新的实际应用场景。
5. 注意事项与最佳实践
• 提醒开发者在实现乐观更新时需考虑用户体验的细节,例如加载状态和错误提示的显示。
• 强调了在特定场景下应避免过度使用乐观更新,以免误导用户。
author Kent C. Dodds
#优质博文 #前端 #css #新特性
The Gap Strikes Back: Now Stylable
author Patrick Brosset
ref: Minding the “gap”
The Gap Strikes Back: Now Stylable
AI 摘要:本文介绍了 CSS 中一个令人兴奋的新特性——CSS gap decorations(间隙装饰),它允许开发者在 flexbox、grid 和多列布局等布局类型的间隙中绘制装饰性分隔线,解决了过去需要使用复杂 workaround 的问题。文章回顾了 CSS gap 属性的历史,并详细阐述了新特性如何通过 column-rule、row-rule 等属性实现灵活的样式化分隔线设计,同时提供了浏览器支持情况和具体使用示例,帮助开发者理解和应用这一功能。
1. 引言与背景
• 回顾了作者四年前关于 CSS gap 属性的文章,介绍了当时使用 gap 轻松实现布局间距的便利性,但也指出了样式化间隙区域的困难,需要使用额外的 HTML 元素或伪元素等 workaround。
• 这些 workaround 存在布局影响、辅助技术干扰和代码污染等问题。
• 提出新特性 CSS gap decorations 将彻底改变这一现状,提供简单且灵活的解决方案。
2. CSS Gap Decorations 特性介绍
• 基础概念:扩展了多列布局中已有的 column-rule 属性,使其适用于 flexbox 和 grid 布局,用于绘制列间分隔线。
• 新属性 row-rule :用于在行间绘制分隔线,支持多种样式(如虚线、实线)和颜色配置。
• 高级功能:支持通过 repeat() 函数定义多种样式的分隔线,适应未知数量的间隙;引入 row-rule-break 、 column-rule-break 、 row-rule-outset 、 column-rule-outset 和 gap-rule-paint-order 等属性,允许精细调整分隔线的绘制方式、交叉点行为和起止位置。
3. 适用范围:目前支持 grid、flexbox 和多列布局,未来将扩展至 masonry 布局。
4. 浏览器支持情况
• 当前仅在基于 Chromium 的浏览器(如 Chrome 和 Edge 139 版本)中可用,且需通过启用实验性 Web 平台功能标志(flag)来体验。
• 提供了启用 flag 的具体步骤,并鼓励开发者试用并提供反馈以改进特性。
5. CSS Gap Decorations 使用示例
• 通过一个简单的网页布局示例(包含 header、nav、main 和 footer),展示了如何使用 grid 和 flexbox 布局结合 gap 属性和 row-rule 、 column-rule 属性绘制分隔线。
• 逐步调整样式,例如使用不同粗细和样式的分隔线,以及通过 column-rule-outset 属性控制垂直分隔线的起止位置,优化布局视觉效果。
• 提供了最终示例的实时演示和源代码链接。
6. 更多学习资源
• 介绍了额外的属性功能,如 gap-rule-paint-order 控制行与列分隔线的层级, row-rule-break 和 column-rule-break 定义交叉点行为。
• 由于特性较新,MDN 暂无相关文档,推荐参考 CSS Gap Decorations Module Level 1 草案和 Microsoft Edge 的说明文档。
• 提供了 Edge 团队的交互式 playground 工具,供开发者直观配置间隙装饰,并鼓励通过 Chromium issue tracker 提交反馈和问题。
author Patrick Brosset
ref: Minding the “gap”
#优质博文 #Git #tools
希望大家都不会需要这个(遇上屎山项目了用这个多少能救救)
这个巨快!(
BFG Repo-Cleaner
希望大家都不会需要这个(遇上屎山项目了用这个多少能救救)
这个巨快!(
BFG Repo-Cleaner
AI 摘要:BFG Repo-Cleaner 是一个比 git-filter-branch 更简单、更快速的工具,用于清理 Git 仓库历史中的不良数据。它通过高效的操作方式,帮助用户删除敏感文件、大文件、特定密码或文件夹等内容,同时保护最新提交以避免破坏生产代码。BFG 的运行速度比 git-filter-branch 快 10-720 倍,适合快速处理大规模仓库历史清理任务。文章详细介绍了 BFG 的使用步骤、功能选项以及注意事项,并强调了备份和验证的重要性。
#优质博文 #前端 #node #工程化
Modern Node.js Patterns for 2025
author Ashwin
Modern Node.js Patterns for 2025
AI 摘要:本文深入探讨了 Node.js 在 2025 年的现代开发模式,展示了其从早期的回调和 CommonJS 主导到如今基于标准的开发体验的巨大转变。文章重点介绍了 ES 模块(ESM)、内置 Web API、测试工具、异步模式、流处理、Worker 线程、安全性与性能监控等现代特性,旨在帮助开发者构建更高效、可维护且符合 Web 标准的应用程序。通过减少外部依赖、提升开发者体验和优化部署方式,Node.js 已成为一个全面的开发平台,为未来的服务器端 JavaScript 开发奠定了坚实基础。
1. 模块系统:ESM 成为新标准
• 对比 CommonJS 和 ES 模块,ESM 提供更好的工具支持和 Web 标准一致性。
• 介绍 node: 前缀用于内置模块导入,避免命名冲突并明确依赖。
• 强调顶层 await 特性,简化初始化代码,消除 IIFE(立即执行异步函数)模式。
2. 内置 Web API:减少外部依赖
• 原生 Fetch API 取代外部 HTTP 库(如 axios),支持超时和取消操作。
• AbortController 提供标准化操作取消机制,适用于多种异步操作。
3. 内置测试工具:无需外部框架
• Node.js 内置测试运行器,提供现代化 API,支持单元测试、异步测试和覆盖率报告。
• 开发中的 watch 模式提供即时反馈,简化测试流程。
4. 高级异步模式:成熟的异步处理
• 结合 async/await 与并行执行(如 Promise.all )和结构化错误处理,提升代码性能和可读性。
• 使用 AsyncIterators 改进事件驱动编程,支持流式事件处理和背压控制。
5. 流处理与 Web 标准集成
• 现代流处理 API(如 pipeline )提供自动清理和错误处理,简化操作。
• 支持 Web Streams,实现与浏览器代码和边缘环境的无缝兼容。
6. Worker 线程:CPU 密集型任务的并行处理
• Worker 线程实现多核利用,适用于计算密集型任务,避免阻塞主线程。
• 示例展示如何将繁重计算任务委托给 Worker 线程,保持应用响应性。
7. 提升开发者体验:内置工具简化开发
• 内置 watch 模式和环境文件支持,替代 nodemon 和 dotenv ,减少配置负担。
• 简化开发流程,提升开发效率。
8. 现代安全与性能监控
• 实验性权限模型限制应用访问权限,遵循最小权限原则。
• 内置性能监控工具( perf_hooks )帮助识别瓶颈,无需外部 APM 工具。
9. 应用分发与部署优化
• 支持单文件可执行应用,简化 CLI 工具和桌面应用的部署,无需用户安装 Node.js。
10. 现代错误处理与诊断
• 结构化错误处理提供丰富的上下文信息,便于调试和监控。
• 高级诊断工具(如 diagnostics_channel )帮助深入了解应用内部行为。
11. 现代包管理和模块解析
• 支持导入映射(Import Maps),简化内部模块引用,便于重构。
• 动态导入支持按需加载和代码分割,适应不同环境需求。
总结与未来展望
• 强调拥抱 Web 标准、使用内置工具、优化异步模式和开发者体验的重要性。
• Node.js 保持向后兼容,支持渐进式采纳现代模式,确保应用长期可维护性。
author Ashwin
#优质博文 #node #前端 #新动态
Node Weekly Issue #584
Node Weekly Issue #584
AI 摘要: 本期 Node Weekly(#584,2025年7月1日)聚焦 Node.js 的最新动态和技术进展,涵盖了 Node.js 版本更新(如 v22.17.0 LTS 和 v24.3.0)、ECMAScript 2025 规范的批准,以及多个与 Node.js 相关的工具和库的更新。此外,还包括 JavaScript 生态系统的其他热点话题,如 Deno 的新提案和 Cloudflare 的容器技术,旨在为开发者提供全面的技术资讯和资源。
1. 社区动态
• Modern Node.js Patterns for 2025:Ashwin 回顾了 Node.js 的潜力,讨论了 ES 模块、内置 Web API、测试运行器、观察模式、权限模型和导入映射等关键特性,强调了 Node.js 在现代开发中的重要性。
• Node v22.17.0 (LTS) 发布:此 LTS 版本将 assert.partialDeepStrictEqual() 提升为稳定状态,并回溯了 Node 24 的部分功能,同时稳定了多个长期实验性 API 和函数(作者:Antoine du Hamel)。
• Node v24.3.0 (Current) 发布:当前版本发布,但无显著新功能。
• ECMAScript 2025 规范批准:Ecma 国际大会批准了 ES2025 语言规范
2. 工具与库更新与博客
• Transformers.js 3.6:支持在 Node.js 中运行 Google 的 Gemma 3n 模型,将 Hugging Face 的 Python 库能力引入 JavaScript,适用于 NLP、视觉和音频处理等领域。
• Repomix 1.0:基于 Node.js 的工具,可将代码库打包为 AI 友好的格式(如 XML、MD),现已发布稳定版本。
• Marked 16.0:快速 Markdown 解析器和编译器,适用于内容处理。
• whatsapp-api-js 用于 WhatsApp 官方 API 的库。
• 其他工具更新包括 dotenv v17.0、Electron v37.0.0、better-sqlite3 v12.2 等,涵盖环境变量加载、桌面应用开发和数据库操作等领域。
• Node.js 多玩家游戏在低 CPU 使用率下延迟问题(Hacker News)。
3. 其他 JavaScript 生态动态
• Cloudflare 推出 Containers 服务,扩展 Workers 功能,支持容器化应用。
• Temporal API 提案进入 Stage 3 草案阶段。
• Node.js 官方 Bluesky 账号寻求社区意见,讨论内容发布方向。
• 如何使用 NestJS 作为 WebRTC 视频聊天的信令服务器(Christian Nwamba)
#优质博文 #前端 #新动态
New in Chrome 138
author Rachel Andrew
New in Chrome 138
AI 摘要:本文详细介绍了 Chrome 138 版本的新功能,包括内置 AI API(如翻译、语言检测和摘要功能)、新的 CSS 函数、Viewport Segments API 以及其他多项更新。这些新特性旨在提升网页开发体验,支持折叠设备适配,并通过 AI 技术增强用户隐私和功能性。
1. 内置 AI API(Translator, Language Detector, Summarizer APIs)
• 详细描述了 Chrome 138 引入的 AI 相关 API,支持在浏览器中运行 Gemini Nano 等大型语言模型。
• Translator API:允许网页应用实现翻译功能,支持用户以母语参与互动(如支持聊天),并在设备本地完成翻译,提升隐私和速度。
• Language Detector API:在用户设备上实现语言检测,避免上传至云端服务器,进一步保护隐私。
• Summarizer API:支持生成多种格式和长度的文本摘要,例如文章要点、标题建议、长文摘要或书籍预览等。
2. CSS 新功能
• abs() 和 sign() :与数值符号相关的计算函数。
• progress() :返回一个数值,表示某个计算值在起始值和结束值之间的进度位置。
• sibling-index() 和 sibling-count() :用于根据元素在兄弟元素中的位置或总数进行样式设置。
3. Viewport Segments API
• 针对折叠设备的适配 API,允许开发者根据硬件特性(如折叠或铰链)分割视口,优化网页布局。
• 更多细节可参考相关文档《Support foldable devices with the Viewport Segments API》。
4. 其他更新
• 属性值中的 < 和 > 在序列化时会被转义。
• Clear-Site-Data 头新增两个值 prefetchCache 和 prerenderCache ,用于清除预渲染和预加载缓存。
• CSS 尺寸属性(如 width 和 height )新增 stretch 关键字,允许元素完全填充容器可用空间。
author Rachel Andrew
#优质博文 #AI
Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever
author Christian Ekrem
Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever
AI 摘要:本文基于 Peter Naur 1985 年的论文《Programming as Theory Building》,探讨了编程的本质不仅是编写代码,而是构建一个共享的理论模型,即系统如何运作、为何如此设计以及如何演变的心理模型。作者指出,当前 AI 工具的广泛使用导致了“无理论”代码的危机,开发者缺乏对代码的深层理解,系统逐渐失去一致性,而高级开发者在构建理论、维护架构一致性以及指导团队方面变得尤为重要。文章强调,编程的核心是人类智力活动,AI 无法替代理论构建和领域理解,呼吁保留编程中的人类元素。
author Christian Ekrem
#优质博文 #前端 #工程化 #javascript #新动态
🤖 JavaScript Weekly #742
🤖 JavaScript Weekly #742
AI 摘要: 本期 JavaScript Weekly 聚焦于 JavaScript 生态系统的最新动态,包括 ECMAScript 2025 规范的正式批准、Vite 7.0 的发布以及多个前沿工具和框架的更新。文章涵盖了 JavaScript 未来发展的提案、AI 工具在开发中的应用、以及多种实用库和工具的最新版本信息。此外,还介绍了多个技术文章和视频教程,帮助开发者提升技能和了解行业趋势。
1. Ecmascript 2025:有什么新功能?:Ecma 国际大会正式批准了 ES2025 语言规范,Dr. Axel Rauschmayer 提供了简洁的解读,方便开发者快速了解新特性。
2. JavaScript 未来发展提案:Deno 团队整理了 TC39 进程中正在推进的 9 个提案,并附上代码示例,展示了 JavaScript 未来的发展方向。
3. V8 团队的深度解析文章更新 - V8 中引入的两个新优化,旨在加速 WebAssembly。 #wasm
4. 版本更新:Transformers.js 3.6、zx 8.6、Node.js 多个版本更新、Prettier 3.6、Bun v1.2.17 和 SVGO 4.0 的发布信息。
5. Angular 团队创建了一套 LLM 提示和 AI IDE 规则文件,以帮助 Angular 开发者从 LLM 中获得更好的代码
6. 在复杂视觉应用程序中实现 Undo/Redo 系统
7. 没时间学习(Web)框架 X —— 你如何判断学习新事物是否值得花时间?
8. 在编写 WASM 组件时比较 Rust、JavaScript 和 Go
9. 如何撰写引人入胜的软件发布公告
10. 介绍了 Hono 4.8 跨运行时框架、LogTape 1.0.0 通用日志工具、Google 的 Gemini CLI AI 代理工具、PLJS 1.0 Postgres 插件、Marked 16.0 Markdown 解析器、Vue Infinity 数据虚拟化渲染工具、Spark Three.js 3D 渲染器以及多个图表库和框架的更新。
#优质博文 #前端 #css #工程化
挺好的探讨 CSS 特异性的文章,适合初学者概览。
CSS Cascade Layers Vs. BEM Vs. Utility Classes: Specificity Control — Smashing Magazine
author Victor Ayomipo
挺好的探讨 CSS 特异性的文章,适合初学者概览。
CSS Cascade Layers Vs. BEM Vs. Utility Classes: Specificity Control — Smashing Magazine
AI 摘要:本文由 Victor Ayomipo 撰写,深入探讨了 CSS 中特异性(specificity)控制的复杂性及其解决方案。文章详细分析了三种主要的 CSS 特异性管理策略:BEM(Block-Element-Modifier)、Utility Classes(实用类)和 CSS Cascade Layers(层叠层)。通过对比它们的优缺点、使用场景及特异性控制方式,作者旨在帮助开发者理解并选择适合项目需求的 CSS 组织方式,同时强调保持低特异性的重要性,避免使用 !important 等不良实践。
1. 引言:CSS 特异性的挑战
• 介绍了 CSS 特异性导致的样式应用问题,如样式覆盖失败的常见困扰。
• 强调理解特异性比依赖 !important 更可持续,提出特异性问题是 CSS 开发中的核心挑战之一。
2. 特异性基础(Specificity 101)
• 解释了特异性如何通过浏览器层叠算法决定样式优先级。
• 通过示例(如 .cart-button 和 .cart-button.sidebar)展示了项目扩展中特异性冲突的加剧。
• 概述了三种策略(BEM、Utility Classes、Cascade Layers)在控制特异性上的不同思路。
3. 作者与特异性的关系
• 分享了作者对特异性理解的演变,从基础规则到深入研究 CSS 层叠机制。
• 通过实际代码案例,展示了特异性冲突(如旧代码与新样式的优先级问题)及解决时的困境。
• 提出个人原则:保持低特异性,避免复杂选择器链,必要时重构代码。
4. BEM:经典系统
• 详细介绍了 BEM 的命名方法论(Block、Element、Modifier),强调其通过显式层级降低特异性。
• 优点:代码可预测,组件隔离,特异性低且一致。
• 缺点:类名冗长,复用性受限,命名困难,需灵活应用(如结合全局类)。
5. Utility Classes:通过回避特异性
• 描述了 Utility Classes(原子化 CSS)的理念,即通过单一功能的类保持最低特异性(如 p-2、text-red)。
• 优点:快速开发,可预测性高,覆盖简单。
• 缺点:代码可读性差,HTML 冗长,品牌色调整等全局变更困难,父子关系处理受限。
6. Cascade Layers:设计上的特异性控制
• 介绍了 CSS Cascade Layers 的强大功能,通过 @layer 定义样式优先级,超越传统特异性规则。
• 优点:提供绝对控制力,可覆盖高特异性选择器(如 ID 选择器)而无需 !important。
• 缺点:特异性仍起作用,!important 行为特殊,易被滥用导致层级复杂。
7. 三者对比
• 通过表格形式对比了 BEM、Utility Classes 和 Cascade Layers 在特异性控制、代码可读性、组织方式等多个维度的表现。
• 最佳场景:BEM 适合设计系统,Utility Classes 适合快速构建,Cascade Layers 适合遗留代码或复杂项目。
8. 三者交集与结合
• 提出 Cascade Layers 可作为协调者,与 BEM 或 Utility Classes 结合使用,而 BEM 与 Utility Classes 结合则易冲突。
• 作者偏好 Utility Classes 结合 Cascade Layers,但认可 BEM 的价值,强调选择取决于个人与团队需求。
9. 结论
• 总结 Cascade Layers 是近年来最强大的 CSS 特性,但它与 BEM 和 Utility Classes 的本质不同(特性 vs 方法论)。
• 建议保持低特异性,并结合 Cascade Layers 设置样式优先级,以实现更高效的 CSS 管理。
author Victor Ayomipo