banner
很久很久以前,当我学数据结构和算法的时候,有一个作业是自己实现一遍数组,链表,队列和栈。但是从那天之后我也从来没需要过自己实现一个链表,引用一个库可比自己造轮子省事多了。

那自己实现这些东西有用吗?当然有用,我从中学会了很多。我学会了什么时候该用什么样的数据结构。

这一一系列的文章会带你一起实现一个React。
幸运的是,如果我们不关心性能,可调试,可移植性等问题,React的三个或者四个主要特性并不是很难实现。实际上他们非常简单,可能只需要200行代码。

我们将使用相同的API在200行以内实现一个简化版的React,因为这些代码的教学性质(didactic nature),我们将其成为Didact。

使用Didact的程序代码是这个样子。
实现效果
我们将在下面文章中向Didact添加功能:

我们不会实现的内容(目前为止):

  • 函数式组件 (应该很容易支持)
  • React 上下文Context
  • 生命周期方法
  • ref属性
  • 循环生成元素按照key的一致性比较
  • 其他render实现 (现在只支持DOM)
  • 老浏览器支持

你可以在 React库或者实现说明 或者Paul O’Shannessy的这部视频中找到更多信息。