React 源码解析之唠叨两句

前言

cat3.jpg

本小书大部分内容来自作者 Jokcy 的 《React 源码解析》: https://react.jokcy.me/

本文已同步在我的博客: http://ruizhengyun.cn/blog/post/6cd72db8.html

感谢 Jokcy 让我深度了解 React。如他所说,在决定阅读 React 源码时认为不会是一件很难的事,但是真正开始阅读之后才发现,事情没那么简单,因为需要足够的耐心、能够独立思考和静下心来(因为你会碰到之前编码没有见过的写法和概念等等)。

干嘛学习源码

干嘛学习源码
  • 更好地帮你理解自己写的代码是如何运行的;
  • 遇到 bug 时,能帮你从底层去思考并解决问题;
  • 在开始一个新项目之前,想好更好的架构方式;
  • React 设计细节都是很高明的,学习它有助于提升自身编码能力;
  • 互联网寒冬期间,熟悉并可以精通某个技能,可大大提升自己的竞争力,成为升职加薪的基础;

React 特色

无比纯粹

它是一个非常纯粹 UI = fn(x) 的框架,通过 state 映射 UI 的方式来屏蔽 DOM 操作,业界的框架也大抵如此。为什么说 React 纯粹呢?那是因为的 api 设计,核心 api 就是 setState,其余主要内容都围绕组件化来设置,没有 React 双向绑定以及其他 api,要改变一个 UI 只能通过 setState 来改变状态,这就成为了 React 无比纯粹的开发体验。

思想超前

React16 版本是完全重写了 React 代码,但是对于使用者来说是无感知的,光这一点就优秀无比了,不像 vue 或 angular 更新大版本需要调整兼容。更优秀的还在后面,React16 版本引入了Fiber概念,从根本上解决了 js 单线程运行问题。就比如计算量过大,就可能导致动画卡针和交互卡顿等问题。

章节目录部署

第一章 React API

  • createElement;
  • createContext;
  • JSX => JS;
  • ConcurrentMode;
  • Ref;
  • Component;
  • Suspense;
  • Hooks;

第二章 React 创建更新

  • ReactDom.render;
  • Fiber;
  • UpdateQueue;
  • FiberRoot;
  • expirationTime;

第三章 React 调度过程(Fiber Scheduler)

  • scheduleWork;
  • batchedUpdates;
  • performWork;
  • performUnitOfWork;
  • requestWork;
  • react scheduler;
  • renderRoot;

第四章 React 开始更新

  • beginWork 以及优化;
  • 各类组件的更新过程;
  • 调和子节点的过程;

第五章 React 更新后的操作

  • completeUnitOfWork;
  • completeWork;
  • unwindWork;
  • 虚拟 DOM 对比;
  • 错误捕获处理;
  • 完成整棵树更新;

第六章 提交更新,UI 更新

  • commitRoot 整体流程;
  • 提交快照;
  • 提交 DOM 更新;
  • 提交所有声明周期;
  • 开发时的帮助方法;
  • 提交 DOM 插入;
  • 提交 DOM 删除;

第七章 各种功能的实现过程

  • context 的实现过程;
  • ref 的实现过程;
  • hydrate 的实现过程;
  • React 的事件体系;

第八章 Suspense

  • 更新优先级的概念
  • Suspense 组件更新
  • retry 重新尝试渲染
  • 更新挂起的概念
  • timeout 处理
  • lazy 组件更新

Hooks

  • 核心原理
  • useState
  • useEffect
  • useContext
  • 其他 Hooks API

重点篇幅

  • Fiber
  • Update
  • Scheduler
  • React.Children.map
  • ...

后面会附流程图辅助学习

需要你做什么

  • 足够耐心:React 的 Fiber 重构前后花了 3 年,看源码不会 3 周就看完了,所以你要有足够耐心;
  • 思考再思考:自我验证;
  • 善于提问和记笔记:不要留着问题不解决,因为终有一天你还是碰到它;

通读源码意义所在

外在 内在
提高开发能力 提高学习能力
解决问题能力 提高思考能力
提升自身价值 提升设计能力

适合人群

  • React 开发者
  • 想要参与开源项目
  • 想要成为高级开发

你还可以

下一篇:React 源码解析之总览

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 上次写了react整体框架的理解,这次想写写看对于新版React的新的React Fiber的实现。 在React...
    离开North阅读 1,579评论 1 2
  • 柔情似水,佳期如梦,忍顾鹊桥归路。两情若是久长时,又岂在、朝朝暮暮。 鹊桥仙这首诗道出了千千万万对情侣的心里话。今...
    竹安倩阅读 80评论 0 0
  • 杰克.伦敦的小说我一直喜欢看,他的故事节和人物命运描写,使其作品具有个性鲜明的艺术魅力。当然,我看的书中还有他的其...
    15周星星阅读 729评论 0 0
  • 我上一篇说过,既然这个世界没人来改变,就由我来。照常写日记ing 今天老师给我们推荐了一本书,它里面拥有的感悟很多...
    北桥暖栀阅读 235评论 0 2
  • 看着细又长的美腿在自己面前晃悠,在看看自己粗腿,心里无比羡慕。怎么才能修炼一双细长美腿? 几个动作下来,只要每天坚...
    xuanboshi阅读 291评论 0 0