angry-shark / mono-react

Create React from zero series

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

从零开始开发一个 React

为了加深自己对 React 理解,同时也能帮助到其他想要深入理解 React 原理的同学。 我开了这样的一个仓库。

这个仓库分为两部分,一部分是项目主体,也就是 master 分支。这部分保持最新的代码,并尽可能实现 React 的新特性。

另一部分是供大家学习的部分,分支名称以 lecture 开头,大家可以切换到对应分支,查看相应特性的代码和课程介绍。 课程目录见后面课程列表部分。 大家也可以通过 github commit 功能进行比较,查看代码的变更。

先行知识

学习这个课程之前呢,需要各位对 React 的 API 有一定的了解。

如果完全不了解的话,不建议您继续往下看。

如果你已经具备了相关 React 的知识,那么就让我们开始吧!

开始学习

如果你想学习的话,请切换到对应分支。

比如你想学习第一课,就切换到 lecture/part1 分支 ,想学习第二课,就切换到 lecture/part2 分支,依次类推。

课程列表

现在已经完成了 1-5 章内容的草稿,并计划在 2018-07 月份进行完善和纠错。 其他章节部分计划八月份实现。如果你特别感兴趣,请在 issue 区域留言,也许会提前也不一定。

草稿,随时可能变更

  1. 最简单的实现,包括 vdom 结构,createElement,ReactDOM.render

  2. 增加 Class 的支持

  3. 增加 JSX 的支持

  4. 增加 state 支持

  5. 增加声明周期

  6. 增加 dom-diff(调和算法)

  7. 增加 context api

  8. 增加 ref 支持

  9. 增加 PureComponent

...未完待续

Licence

MIT

About

Create React from zero series

License:MIT License