由于前段时间使用 React/Redux 做了一些小项目,很多时候只是停留在使用层面,但对于其内部原理却知之甚少。觉得有些深层的知识还是需要深入到源码层面去了解。此外,对于一个前端开发者来说,由于长期开发的页面一般都不会太复杂,长此以往会导致其丧失设计模式及代码架构的认识,一旦出现一个大型的工程项目,如何对代码本身做设计往往就有些困难了。React 的源代码就是一个很值得学习的例子。

以前也断断续续的看过一部分 React 源码,所以索性把相关的源码注释及笔记都放到了 Github 上,欢迎一起学习。笔记基于 React-0.14.2 版本,这里学习的目的,更多不在于细枝末节和奇技淫巧的学习,而是代码的整体。

按计划,笔记内容大致会包括:

  • React 代码的预处理:由于 React 最终打包后所有文件都到了一个文件夹中,而源代码中所有文件的引用都不是相对路径的引用,因此有必要对其打包工具做一定的处理。
  • 基础模块:主要是 React 上层源码中大量用到的事务机制(transaction)、内存管理(PoolClass)、回调队列(CallbackQueue)
  • virtual-dom 算法
  • 同构模块(即服务端与客户端共用的模块)
  • render 模块,包含 client 和 server 两种 render 机制
  • 事件模块

不过由于博客不适合这一类笔记的记录,所以更多的信息将会更新在 Github 上。