会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
haoxiugong
博客园
首页
新随笔
联系
订阅
管理
2026年3月6日
深入 React19 Diff 算法
摘要: 一、为什么 React 需要 Diff 算法 早期前端如果直接操作 DOM: div.innerHTML = newHTML 问题: DOM 操作极其昂贵 无法知道哪些节点真的变化 频繁重绘 如果使用传统树 diff 算法: 复杂度:O(n^3) 浏览器根本无法接受。 因此 React 提出 对
阅读全文
posted @ 2026-03-06 00:01 秀秀不只会前端
阅读(2)
评论(0)
推荐(0)
2026年2月26日
React19为什么一定要使用位运算?
摘要: 一、位运算基础 1.1 二进制本质 JS 的 Number 在做位运算时:会转为 32 位有符号整数。 例如: 1 = 00000001 2 = 00000010 4 = 00000100 8 = 00001000 1.2 核心运算 (1)按位或 | —— 合并状态 1 | 2 = 3 0001 0
阅读全文
posted @ 2026-02-26 09:34 秀秀不只会前端
阅读(1)
评论(0)
推荐(0)
2026年2月25日
深入React19任务调度器Scheduler
摘要: Scheduler = 最小堆 + MessageChannel + 时间片检查 它的目标只有一个:推进任务,但永远别饿死浏览器。 调度普通任务 React 19 最新 Scheduler 源码(packages/scheduler) 中,普通任务(非 Immediate,同步优先级之外的任务)的完
阅读全文
posted @ 2026-02-25 18:26 秀秀不只会前端
阅读(5)
评论(0)
推荐(0)
2026年2月2日
React19事件调度的设计思路
摘要: 先说结论,React 选择 MessageChannel 完成事件调度,是因为它: 属于宏任务(不会饿死浏览器:JavaScript 一直占着主线程,导致浏览器一直没有机会去做它必须做的事(渲染、响应输入、布局、绘制)) 延迟极低(接近微任务,但不会阻塞渲染) 相较于 rAF 不绑定渲染帧 可控、可
阅读全文
posted @ 2026-02-02 23:52 秀秀不只会前端
阅读(8)
评论(0)
推荐(0)
2026年1月29日
React19 渲染流程
摘要: 一、React 渲染架构 底层渲染流程大致可以分为两大阶段:render 阶段(Scheduler -> Reconciler)、commit 阶段(Renderer) 注意这里的 render 阶段和 Renderer 渲染器是两个东西!!! 主要的阶段可以总结为两个公式: const state
阅读全文
posted @ 2026-01-29 23:44 秀秀不只会前端
阅读(7)
评论(0)
推荐(0)
2026年1月27日
React架构演变
摘要: 这篇文章主要概括性的讲一下 React 架构演进历史,细节部分在之后的系列文章中都会详细讲到。 1. React 核心架构 React 核心(核心算法、调度、Hooks 等) ↓ Reconciler(协调器) ↓ Renderer(不同平台的渲染器,比如 ReactDOM / React Nati
阅读全文
posted @ 2026-01-27 23:49 秀秀不只会前端
阅读(9)
评论(0)
推荐(0)
2026年1月25日
Canvas 何尝不是亮点呢?(一)
摘要: 一、Canvas 是什么? Canvas 是高性能渲染引擎。 <canvas> 是一个位图渲染容器 所有内容都通过 JS API 绘制 绘制完成后,浏览器只认识「像素」,不再关心你画了什么 canvans 支持绘制的图形,总结起来有四种: 直线(矩形) 曲线(圆形) 文字 图片 这与 DOM(结构化
阅读全文
posted @ 2026-01-25 22:06 秀秀不只会前端
阅读(6)
评论(0)
推荐(0)
2026年1月22日
从源码视角来看Pinia!
摘要: 一、Pinia 概览 Pinia 本质是:「基于 Vue3 响应式系统 + effectScope 的“全局可控副作用容器”」 Pinia 核心代码集中在: packages/pinia/src/ ├── createPinia.ts ├── rootStore.ts ├── store.ts ├─
阅读全文
posted @ 2026-01-22 23:49 秀秀不只会前端
阅读(7)
评论(0)
推荐(0)
Vue3底层原理——keep-alive
摘要: 一、keep-alive 概述 keep-alive 不是缓存 DOM,而是缓存「组件 VNode + 组件实例(但 VNode 里持有组件实例)」,它通过“劫持组件卸载流程”,把 destroy 变成 deactivate 源码位置: packages/runtime-core/src/comp
阅读全文
posted @ 2026-01-22 22:43 秀秀不只会前端
阅读(31)
评论(0)
推荐(0)
Vue3架构设计——调度系统
摘要: 调度本义是指控制一系列任务的执行顺序/编排规划。Vue3 的调度系统使其能够做到“批量更新、不重复渲染、任务执行顺序可控” 。 Vue 的调度系统 = 副作用执行顺序 + 去重 + 批量刷新 所有响应式变化,最终都不会“立刻执行”,而是被“调度” 一、Vue 为什么需要调度系统? 如果没有调度,会发
阅读全文
posted @ 2026-01-22 00:00 秀秀不只会前端
阅读(7)
评论(0)
推荐(0)
下一页
公告