Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/azl397985856/mono-react

Create React from zero series
https://github.com/azl397985856/mono-react

algorithm react tutorial

Last synced: 3 months ago
JSON representation

Create React from zero series

Awesome Lists containing this project

README

        

# 从零开始开发一个 React

------------------------------------

Warning: 网上有一个非常好的[同类教程](https://pomb.us/build-your-own-react/),因此本仓库**不再维护**。 强烈建议大家直接看那个,不仅从质量和更新速度上都很Nice。

-----------------------------------

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

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

另一部分是供大家学习的部分,分支名称以 lecture 开头,大家可以切换到对应分支,查看相应特性的代码和课程介绍。
课程目录见后面`课程列表部分`。 大家也可以通过 [github commit](https://github.com/azl397985856/mono-react/commits/master) 功能进行比较,查看代码的变更。

## 先行知识

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

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

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

## 开始学习

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

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

### 课程列表

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

> 草稿,随时可能变更

1. [最简单的实现,包括 vdom 结构,createElement,ReactDOM.render](https://github.com/azl397985856/mono-react/tree/lecture/part1)

2. [增加 Class 的支持](https://github.com/azl397985856/mono-react/tree/lecture/part2)

3. [增加 JSX 的支持](https://github.com/azl397985856/mono-react/tree/lecture/part3)

4. [增加 state 支持](https://github.com/azl397985856/mono-react/tree/lecture/part4)

5. [增加声明周期](https://github.com/azl397985856/mono-react/tree/lecture/part5)

6. [增加 dom-diff(调和算法)](https://github.com/azl397985856/mono-react/tree/lecture/part6)

7. [增加 context api](https://github.com/azl397985856/mono-react/tree/lecture/part7)

8. 增加 ref 支持

9. 增加 PureComponent

...未完待续

## Licence

MIT