{"id":17929538,"url":"https://github.com/azl397985856/mono-react","last_synced_at":"2025-07-20T04:35:54.259Z","repository":{"id":49443892,"uuid":"139661098","full_name":"azl397985856/mono-react","owner":"azl397985856","description":"Create React from zero series","archived":false,"fork":false,"pushed_at":"2020-01-31T15:56:11.000Z","size":75,"stargazers_count":75,"open_issues_count":1,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-04T20:36:22.957Z","etag":null,"topics":["algorithm","react","tutorial"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azl397985856.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-04T02:56:14.000Z","updated_at":"2024-11-08T04:20:21.000Z","dependencies_parsed_at":"2022-07-30T02:07:58.169Z","dependency_job_id":null,"html_url":"https://github.com/azl397985856/mono-react","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/azl397985856/mono-react","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fmono-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fmono-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fmono-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fmono-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azl397985856","download_url":"https://codeload.github.com/azl397985856/mono-react/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fmono-react/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266067396,"owners_count":23871340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","react","tutorial"],"created_at":"2024-10-28T21:09:34.867Z","updated_at":"2025-07-20T04:35:54.237Z","avatar_url":"https://github.com/azl397985856.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 从零开始开发一个 React\n\n------------------------------------\n\nWarning: 网上有一个非常好的[同类教程](https://pomb.us/build-your-own-react/)，因此本仓库**不再维护**。 强烈建议大家直接看那个，不仅从质量和更新速度上都很Nice。\n\n-----------------------------------\n\n为了加深自己对 React 理解，同时也能帮助到其他想要深入理解 React 原理的同学。\n我开了这样的一个仓库。\n\n这个仓库分为两部分，一部分是项目主体，也就是 master 分支。这部分保持最新的代码，并尽可能实现 React 的新特性。\n\n另一部分是供大家学习的部分，分支名称以 lecture 开头，大家可以切换到对应分支，查看相应特性的代码和课程介绍。\n课程目录见后面`课程列表部分`。 大家也可以通过 [github commit](https://github.com/azl397985856/mono-react/commits/master) 功能进行比较，查看代码的变更。\n\n## 先行知识\n\n学习这个课程之前呢，需要各位对 React 的 API 有一定的了解。\n\n\u003e 如果完全不了解的话，不建议您继续往下看。\n\n如果你已经具备了相关 React 的知识，那么就让我们开始吧!\n\n## 开始学习\n\n如果你想学习的话，请切换到对应分支。\n\n比如你想学习第一课，就切换到 lecture/part1 分支 ，想学习第二课，就切换到 lecture/part2 分支，依次类推。\n\n### 课程列表\n\n现在已经完成了 1-5 章内容的草稿，并计划在 2018-07 月份进行完善和纠错。\n其他章节部分计划八月份实现。如果你特别感兴趣，请在 issue 区域留言，也许会提前也不一定。\n\n\u003e 草稿，随时可能变更\n\n1.  [最简单的实现，包括 vdom 结构，createElement，ReactDOM.render](https://github.com/azl397985856/mono-react/tree/lecture/part1)\n\n2.  [增加 Class 的支持](https://github.com/azl397985856/mono-react/tree/lecture/part2)\n\n3.  [增加 JSX 的支持](https://github.com/azl397985856/mono-react/tree/lecture/part3)\n\n4.  [增加 state 支持](https://github.com/azl397985856/mono-react/tree/lecture/part4)\n\n5.  [增加声明周期](https://github.com/azl397985856/mono-react/tree/lecture/part5)\n\n6.  [增加 dom-diff（调和算法）](https://github.com/azl397985856/mono-react/tree/lecture/part6)\n\n7.  [增加 context api](https://github.com/azl397985856/mono-react/tree/lecture/part7)\n\n8.  增加 ref 支持\n\n9.  增加 PureComponent\n\n...未完待续\n\n## Licence\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazl397985856%2Fmono-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazl397985856%2Fmono-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazl397985856%2Fmono-react/lists"}