一些短笔记或快速思考
React高频渲染场景:数据更新频繁,如何保证页面的渲染性能: 优化路线与压测结果
2025年3月30日
React高频渲染场景:数据更新频繁,如何保证页面的渲染性能: 可抄用的示例代码(含压测入口)
React高频渲染场景:数据更新频繁,如何保证页面的渲染性能: 进一步可选优化(按需选)
React高频渲染场景:数据更新频繁,如何保证页面的渲染性能: 最终结论
使用AI聊天的时候,字儿是咋一个一个蹦出来的?: 一、SSE:不是WebSocket的表弟
2025年3月1日
使用AI聊天的时候,字儿是咋一个一个蹦出来的?: 二、sse方案对比(技术选型)
使用AI聊天的时候,字儿是咋一个一个蹦出来的?: 三、方案选型决策树
使用AI聊天的时候,字儿是咋一个一个蹦出来的?: 四、SSE翻车现场实录
使用AI聊天的时候,字儿是咋一个一个蹦出来的?: 五、终极建议
浅识WebGL: 前言
2025年2月26日
浅识WebGL: WebGL到底是个什么东西?
浅识WebGL: 为什么要用Three.js?
浅识WebGL: 深入理解Three.js的核心概念
浅识WebGL: 几何体(Geometry):构建3D形状的积木
浅识WebGL: 材质(Material):给物体穿上”衣服”
浅识WebGL: 光照系统:让世界亮起来
浅识WebGL: 纹理(Texture):给物体贴上”皮肤”
浅识WebGL: 动画系统:让静态世界动起来
浅识WebGL: 交互控制:让用户参与进来
浅识WebGL: 我的Three.js学习之路(详细版)
浅识WebGL: 高级技巧和优化
浅识WebGL: 踩过的坑和经验总结
浅识WebGL: 实际项目应用案例
浅识WebGL: 给新手的建议
浅识WebGL: 进阶学习路径
浅识WebGL: 结语
异常监控:用 Sentry 给你的应用装个"黑匣子": 背景:为什么需要异常监控
2024年12月22日
异常监控:用 Sentry 给你的应用装个"黑匣子": 痛点:线上常见的那些”鬼”
异常监控:用 Sentry 给你的应用装个"黑匣子": 为什么选择 Sentry?
异常监控:用 Sentry 给你的应用装个"黑匣子": 接入过程:从零到一的实战
异常监控:用 Sentry 给你的应用装个"黑匣子": 实战技巧:让 Sentry 更好用
异常监控:用 Sentry 给你的应用装个"黑匣子": 常见问题和解决方案
异常监控:用 Sentry 给你的应用装个"黑匣子": 监控数据的分析和利用
异常监控:用 Sentry 给你的应用装个"黑匣子": 团队协作和工作流
异常监控:用 Sentry 给你的应用装个"黑匣子": 写在最后
Monorepo:从一团乱麻到井井有条的代码管理之路: 初识 Lerna:第一次尝鲜的酸甜苦辣
2024年12月10日
Monorepo:从一团乱麻到井井有条的代码管理之路: Nx:现代化的 Monorepo 解决方案
Monorepo:从一团乱麻到井井有条的代码管理之路: 技术科普:Monorepo 的利与弊
Monorepo:从一团乱麻到井井有条的代码管理之路: 实战总结:我的 Monorepo 最佳实践
Monorepo:从一团乱麻到井井有条的代码管理之路: 写在最后
前端工程性能优化之道: 一、编码层面(以 Vue 3 为例)
2024年12月2日
前端工程性能优化之道: 二、工程化方面
前端工程性能优化之道: 小结
IndexedDB第三方库 localforage: 背景:为啥会有它?
2024年11月21日
IndexedDB第三方库 localforage: API 概览:就这几个,够吃一年
IndexedDB第三方库 localforage: 最小示例:两分钟就能跑
IndexedDB第三方库 localforage: 逐步扩展:把常见需求一锅端
IndexedDB第三方库 localforage: 小结与常见坑
Getting Started: Preparation
2024年10月4日
Getting Started: Create Your Project
Getting Started: Launch the Project
Getting Started: Configure the Project
Getting Started: Authoring Content
Getting Started: Deploy Your Project
Getting Started: Sync Updates
Getting Started: Next Steps
Project Structure: Overview
2024年10月3日
Project Structure: src/pages/ and src/content/
Project Structure: Page-Collection Mapping
Basic Configuration: Configuring SITE
2024年10月2日
Basic Configuration: Configuring UI
Basic Configuration: Configuring FEATURES
Advanced Configuration: Customizing Logo
2024年10月1日
Advanced Configuration: Replacing the Website Icon
Advanced Configuration: Customizing Website Styles
Advanced Configuration: Customizing Fonts
Advanced Configuration: Customizing Footer
Advanced Configuration: Configure Giscus Comments
Advanced Configuration: Final Cleanup
Vite plugin-legacy 详解: 什么时候该上?三问做决策(别拍脑袋)
2024年1月29日
Vite plugin-legacy 详解: 快速上手:三步走就能跑
Vite plugin-legacy 详解: 配置项
Vite plugin-legacy 详解: 和 Browserslist / Autoprefixer / Babel 的相处之道
Vite plugin-legacy 详解: 它是怎么工作的?(点到为止,够用了)
Vite plugin-legacy 详解: 真实场景怎么配?(两档模板)
Vite plugin-legacy 详解: 成本账本:别糊里糊涂就开了
Vite plugin-legacy 详解: 踩坑锦集(都是血泪)
Vite plugin-legacy 详解: 排查套路:怎么确认 legacy 真生效了?
Vite plugin-legacy 详解: 和团队怎么对齐?(一页纸共识)
Vite plugin-legacy 详解: 小结
New Posts: Creating a New Post
2023年12月6日
New Posts: Editing Frontmatter
New Posts: Writing the Post
Current Pages: Creating Pages
2023年12月3日
Current Pages: Updating Pages
Current Pages: Removing Pages
GitHub Activity: Configure the Loaders
2023年12月1日
GitHub Activity: Update Page Content
GitHub Activity: Automate Data Refreshing
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 为什么要封装 useModal?
2023年11月25日
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: useModal 的核心思路
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 源码解析
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 异步加载的进阶版本
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 实际使用场景
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 踩过的坑
Vue3 hook useModal的封装:让弹窗管理变得轻松愉快: 总结
Git 提交规范:最佳实践清单: TL;DR:一屏清单
2023年10月18日
Git 提交规范:最佳实践清单: 写法规范(就这几条,够用了)
Git 提交规范:最佳实践清单: 类型与作用域(别纠结,先统一)
Git 提交规范:最佳实践清单: 粒度与节奏(写多少合适)
Git 提交规范:最佳实践清单: 团队工具最小闭环(5 分钟落地)
Git 提交规范:最佳实践清单: 协作流与合并策略
Git 提交规范:最佳实践清单: Monorepo 小贴士
Git 提交规范:最佳实践清单: 自动生成 CHANGELOG 与发版(可选增强)
Git 提交规范:最佳实践清单: 常见问题(快问快答)
Git 提交规范:最佳实践清单: 团队落地 Checklist
微前端与 qiankun:起源、选型与实战: 起源与目的:为了解耦和可持续演进
2023年4月18日
微前端与 qiankun:起源、选型与实战: 技术栈横向对比:谁上场,谁当替补
微前端与 qiankun:起源、选型与实战: 选型建议(落地向)
微前端与 qiankun:起源、选型与实战: 用 qiankun 起步:5 分钟能跑
微前端与 qiankun:起源、选型与实战: 进阶:把细节拉满
微前端与 qiankun:起源、选型与实战: 和其它方案怎么配合?
微前端与 qiankun:起源、选型与实战: 常见坑位(踩过就不想再踩第二次)
微前端与 qiankun:起源、选型与实战: 一个落地清单(照这个来,基本不翻车)
微前端与 qiankun:起源、选型与实战: 小结
Canvas虚拟列表技术方案详解: 🎯 方案背景
2022年11月8日
Canvas虚拟列表技术方案详解: 🏗️ 核心架构设计
Canvas虚拟列表技术方案详解: 🎨 关键技术实现
Canvas虚拟列表技术方案详解: 🎮 交互体验设计
Canvas虚拟列表技术方案详解: 📊 性能优化策略
Canvas虚拟列表技术方案详解: 🚀 性能表现对比
Canvas虚拟列表技术方案详解: 💡 使用场景与建议
Canvas虚拟列表技术方案详解: 🔧 快速集成
Canvas虚拟列表技术方案详解: 🎯 技术总结
Canvas虚拟列表技术方案详解: 🔍 深度技术解析
Canvas虚拟列表技术方案详解: 🛠️ 扩展功能实现
Canvas虚拟列表技术方案详解: 📈 性能优化进阶
Canvas虚拟列表技术方案详解: 🎨 样式定制指南
Canvas虚拟列表技术方案详解: 🚀 完整示例代码
Canvas虚拟列表技术方案详解: 📚 学习资源与参考
长列表渲染方案对比: 🎯 项目简介
2022年11月5日
长列表渲染方案对比: 🏟️ 比赛场地设置
长列表渲染方案对比: 🥊 四大选手详细分析
长列表渲染方案对比: 📊 实战比赛数据
长列表渲染方案对比: 🎮 交互控制台
长列表渲染方案对比: 💡 选手选择指南
长列表渲染方案对比: 📝 总结
Flutter组件的依赖关系: “组件依赖关系”到底是个啥?
2022年8月2日
Flutter组件的依赖关系: 三棵树,别搞混
Flutter组件的依赖关系: 依赖的两条主线
Flutter组件的依赖关系: InheritedWidget:监听是怎么“挂上去”的?
Flutter组件的依赖关系: 生命周期:依赖关系在什么时候能用?
Flutter组件的依赖关系: 常见依赖来源和写法对比
Flutter组件的依赖关系: 小例子:手写一个简单依赖
Flutter组件的依赖关系: 布局依赖:父子之间的“规矩”
Flutter组件的依赖关系: 哪些地方容易踩坑?
Flutter组件的依赖关系: 性能小妙招:把“听众”做小
Flutter组件的依赖关系: 生命周期再捋一遍
Flutter组件的依赖关系: 心智模型:记住这三句话
Flutter组件的依赖关系: 一个更接地气的 Provider 对照
Flutter组件的依赖关系: 收尾:写 Flutter,别跟依赖“怄气”
Flutter开发中常用的基础组件: Flutter 开发中常用的基础组件,一口气给你捋清楚
2022年7月13日
Electron日志与崩溃收集: 背景:为啥要上这套?
2022年3月15日
Electron日志与崩溃收集: 方案一览
Electron日志与崩溃收集: 日志:主/渲染双管齐下
Electron日志与崩溃收集: JS 异常兜底:别让错误悄悄溜走
Electron日志与崩溃收集: 原生崩溃:minidump + 上报
Electron日志与崩溃收集: 自动更新联动日志(强烈建议)
Electron日志与崩溃收集: 排查套路:三步走
Electron日志与崩溃收集: 安全与合规:别踩红线
Electron日志与崩溃收集: 常见坑(都是坑过的)
Electron日志与崩溃收集: 小结
Electron 通信鉴赏:场景实战与工程化进阶: 一、通信全景图(很快过一遍)
2022年3月11日
Electron 通信鉴赏:场景实战与工程化进阶: 二、最常用的桥:预加载脚本(一次写好,全局安心)
Electron 通信鉴赏:场景实战与工程化进阶: 三、场景 1:文件/目录选择(权限稳稳当当)
Electron 通信鉴赏:场景实战与工程化进阶: 四、场景 2:下载任务与进度回传(主拉渲染看)
Electron 通信鉴赏:场景实战与工程化进阶: 五、场景 3:自动更新提示(问主进程要结果,UI 在渲染)
Electron 通信鉴赏:场景实战与工程化进阶: 六、场景 4:窗口间同步(主进程当“消息总线”)
Electron 通信鉴赏:场景实战与工程化进阶: 七、场景 5:后台任务(CPU 劲活儿别在渲染进程硬抗)
Electron 通信鉴赏:场景实战与工程化进阶: 八、场景 6:打印 / 导出 PDF(传路径,不传二进制)
Electron 通信鉴赏:场景实战与工程化进阶: 九、工程化进阶(把“能用”打磨成“耐用”)
Electron 通信鉴赏:场景实战与工程化进阶: 十、踩坑速记(遇见过就忘不了)
Electron 通信鉴赏:场景实战与工程化进阶: 收个尾
Markdown Syntax Guide
2022年3月4日
Extended Features: Callouts (Alerts/Admonitions)
2022年3月2日
Extended Features: Fully-featured Code Blocks
Extended Features: Image Caption & Link (:::image)
Extended Features: Video Embedding(::video)
Extended Features: Styled Link(:link)
Extended Features: Badges(:badge)
Extended Features: Details Dropdown
Vue + Electron,打造跨平台桌面应用: 技术栈简介
2022年2月25日
Vue + Electron,打造跨平台桌面应用: 环境准备:别在门口摔跤
Vue + Electron,打造跨平台桌面应用: 桌面应用开发实战:把“壳”和“页面”跑起来
Vue + Electron,打造跨平台桌面应用: IPC 通信:说话要走正道
Vue + Electron,打造跨平台桌面应用: 自动更新:吃过一次香一整年
Vue + Electron,打造跨平台桌面应用: 打包:三平台一锅端
Vue + Electron,打造跨平台桌面应用: 加餐:常见坑与处理
Vue + Electron,打造跨平台桌面应用: 小结
Sync Updates: Updating to the Latest Theme Version
2021年6月6日
Sync Updates: Updating Project Dependencies
一文搞懂浏览器兼容性:清单与案例: 一屏清单(先定目标,再动手)
2021年6月4日
一文搞懂浏览器兼容性:清单与案例: 第一步:三分钟定兼容目标(决策树)
一文搞懂浏览器兼容性:清单与案例: 第二步:CSS 兼容怎么落地(别扯,直接配)
一文搞懂浏览器兼容性:清单与案例: 第三步:JS 兼容怎么搞(两件事)
Asset Management: Supported Cases for Image Optimization and Responsive Processing
2020年1月3日
Asset Management: Images in Markdown Files
Asset Management: Images in MDX Files
Asset Management: Image Compression
Open Graph: What Are Open Graph Images?
2020年1月2日
Open Graph: Configuring OG Images
Open Graph: Template for Auto-Generated OG Images
Open Graph: How This Theme Automatically Generates OG Images
Open Graph: Extra Tips
FAQs: Lighthouse Scores
2020年1月1日
FAQs: About SEO and Accessibility
FAQs: Revert from pnpm to npm or yarn
FAQs: Path Aliases
FAQs: Icon Usage
FAQs: Post Date Format
FAQs: Page Backgrounds
FAQs: Search Functionality
FAQs: Image Zoom
FAQs: RSS Subscription Scope
FAQs: Language-specific Build
FAQs: Choosing a Math Rendering Engine
FAQs: About Footnotes in Markdown