{"id":13671018,"url":"https://github.com/AttackXiaoJinJin/reactExplain","last_synced_at":"2025-04-27T14:33:06.120Z","repository":{"id":40733094,"uuid":"176947484","full_name":"AttackXiaoJinJin/reactExplain","owner":"AttackXiaoJinJin","description":"React源码解析","archived":false,"fork":false,"pushed_at":"2022-12-09T17:27:37.000Z","size":5980,"stargazers_count":558,"open_issues_count":149,"forks_count":83,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-11T08:43:46.500Z","etag":null,"topics":["explaination","react16","source-code"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AttackXiaoJinJin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-21T13:13:09.000Z","updated_at":"2024-10-13T03:59:15.000Z","dependencies_parsed_at":"2023-01-25T22:46:12.838Z","dependency_job_id":null,"html_url":"https://github.com/AttackXiaoJinJin/reactExplain","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AttackXiaoJinJin%2FreactExplain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AttackXiaoJinJin%2FreactExplain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AttackXiaoJinJin%2FreactExplain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AttackXiaoJinJin%2FreactExplain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AttackXiaoJinJin","download_url":"https://codeload.github.com/AttackXiaoJinJin/reactExplain/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251154262,"owners_count":21544469,"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":["explaination","react16","source-code"],"created_at":"2024-08-02T09:00:56.002Z","updated_at":"2025-04-27T14:33:01.911Z","avatar_url":"https://github.com/AttackXiaoJinJin.png","language":"JavaScript","funding_links":[],"categories":["目录","JavaScript"],"sub_categories":["\u003ca id=\"article\"\u003e文章\u003c/a\u003e"],"readme":"\u003ch1\u003eReact源码解析\u003c/h1\u003e\n\u003ch3\u003e说明\u003c/h3\u003e\n\n* 本源码可从[https://github.com/AttackXiaoJinJin/reactExplain/blob/master/react16.8.6/CHANGELOG.md](https://github.com/AttackXiaoJinJin/reactExplain/blob/master/react16.8.6/CHANGELOG.md)\n查看版本号，建议直接 fork，若从官网下载源码，考虑到 [文件名称被rename](https://github.com/AttackXiaoJinJin/reactExplain/issues/147) 的问题，建议版本号从16.9.0开始\n官网 release 地址：\n[https://github.com/facebook/react/releases?after=v16.10.2](https://github.com/facebook/react/releases?after=v16.10.2)\n\n* 如果找不到对应的`函数名`/`文件名`，建议全局搜索里面的代码块进行查找\n\n\u003ch3\u003eAPI\u003c/h3\u003e\n\n[React源码解析之React.createElement()和ReactElement()](https://juejin.im/post/5d2b0763f265da1bd14686c5)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之React.Component()/PureComponent()](https://juejin.im/post/5d2e754f6fb9a07f070e600e)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之React.createRef()/forwardRef()](https://juejin.im/post/5d39afe65188257dc103e9f5)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之React.createContext()](https://juejin.im/post/5d3efff3e51d4561a34618c0)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之React.children.map()](https://juejin.im/post/5d46b71a6fb9a06b0c084acd)\n\u003cbr/\u003e\u003cbr/\u003e\n[React.forwardRef的应用场景及源码解析](https://juejin.im/post/5e52263de51d4526dd1ea1fe)\n\n***\n\u003ch3\u003eFiberScheduler\u003c/h3\u003e\n\n[React源码解析之ReactDOM.render()](https://juejin.im/post/5d535e7be51d45620771f0b2)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之RootFiber](https://juejin.im/post/5d5aa4695188257573635a0d)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Update和UpdateQueue](https://juejin.im/post/5d62645bf265da03ec2e6f33)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之ExpirationTime](https://juejin.im/post/5d6a572ce51d4561fa2ec0bc)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之setState和forceUpdate](https://juejin.im/post/5d705e555188255457502380)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之FiberRoot](https://juejin.im/post/5d75a66ce51d4561e84fcc9b)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之scheduleWork（上）](https://juejin.im/post/5d7fa983f265da03cf7ac048)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之scheduleWork（下）](https://juejin.im/post/5d885b75f265da03e83baaa7)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之requestHostCallback](https://juejin.im/post/5da2d5725188252a923a8ec5)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之flushWork](https://juejin.im/post/5dad45575188256ad9347402)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之renderRoot概览](https://juejin.im/post/5db7f39f6fb9a0207f102ee7)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之workLoop](https://juejin.im/post/5dcc17b26fb9a02b6a6ff999)\n\n***\n\u003ch3\u003eComponentUpdate\u003c/h3\u003e\n\n[React之childExpirationTime](https://juejin.im/post/5dcdfee86fb9a01ff600fe1d)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之FunctionComponent（上）](https://juejin.im/post/5ddbe114e51d45231e010c75)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之FunctionComponent（中）](https://juejin.im/post/5de8cf74f265da33ac2ce132)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之FunctionComponent（下）](https://juejin.im/post/5deb93976fb9a016464340b0)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之updateClassComponent（上）](https://juejin.im/post/5e1bc74ee51d45020837e8f4)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之updateClassComponent（下）](https://juejin.im/post/5e1d17e75188254dc022bbee)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之PureComponet的浅比较](https://juejin.im/post/5e2150535188254dbc25e6cf)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之IndeterminateComponent](https://juejin.im/post/5e26a131e51d453cf54449b5)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之updateHostComponent和updateHostText](https://juejin.im/post/5e398018f265da5765439b57)\n\n***\n\u003ch3\u003eNodeUpdate\u003c/h3\u003e\n\n[React源码解析之completeUnitOfWork](https://juejin.im/post/5e4a02bd51882549122aa50c)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之completeWork和HostText的更新](https://juejin.im/post/5e535d7e6fb9a07cbf46b282)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之HostComponent的更新(上)](https://juejin.im/post/5e5c5e1051882549003d1fc7)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之HostComponent的更新(下)](https://juejin.im/post/5e65f86f6fb9a07cdc600e09)\n***\n\u003ch3\u003e错误处理\u003c/h3\u003e\n\n[React源码解析之「错误处理」流程](https://juejin.im/post/5e7963956fb9a07cdc60253f)\n***\n\u003ch3\u003eCommit阶段\u003c/h3\u003e\n\n[React源码解析之commitRoot整体流程概览](https://juejin.im/post/5e829d1e6fb9a03c621666b5)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Commit第一子阶段「before mutation」](https://juejin.im/post/5e883ff76fb9a03c860b6ab0)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Commit第二子阶段「mutation」(上)](https://juejin.im/post/5e8ad1436fb9a03c3c351447)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Commit第二子阶段「mutation」(中)](https://juejin.im/post/5e92b851f265da47bf17bdc6)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Commit第二子阶段「mutation」(下)](https://juejin.im/post/5e9ae787e51d454701257e45)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码解析之Commit最后子阶段「layout」(附Commit阶段流程图)](https://juejin.im/post/5ea6f1746fb9a0437c3929c5)\n\u003cbr/\u003e\u003cbr/\u003e\n***\n\u003ch3\u003eReact-Hooks\u003c/h3\u003e\n\n[ReactHooks源码解析之useState及为什么useState要按顺序执行](https://juejin.im/post/5eb7c96ff265da7b90055137)\n\u003cbr/\u003e\u003cbr/\u003e\n[ReactHooks源码解析之useEffect](https://juejin.im/post/5ed3356bf265da76cf6e4f75)\n\u003cbr/\u003e\u003cbr/\u003e\n***\n\u003ch3\u003e好文分享\u003c/h3\u003e\n\n[图解React](http://www.7km.top) ——作者：[公里柒(KM.Seven)](https://github.com/7kms)\n\u003cbr/\u003e\u003cbr/\u003e\n[React源码揭秘1 架构设计与首屏渲染]()——作者：[卡颂](https://juejin.im/user/5aea853b518825670f7baf2e/posts)\n\u003cbr/\u003e\u003cbr/\u003e\n[这可能是最通俗的 React Fiber(时间分片) 打开方式](https://juejin.im/post/5dadc6045188255a270a0f85)——作者：[荒山](https://juejin.im/user/5762733b2e958a00696163ea/posts)\n\u003cbr/\u003e\u003cbr/\u003e\n[走进React Fiber 架构](https://juejin.im/post/5df21c895188251260743972#heading-36)——作者：[intopiece_槟](https://juejin.im/user/59435713128fe1006a278401/posts)\n***\n\u003ch2\u003e微信公众号\u003c/h2\u003e\n\n每周分享前端干货和生活感悟！\n\n![](https://upload-images.jianshu.io/upload_images/5518628-d990fd52db10fd66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAttackXiaoJinJin%2FreactExplain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAttackXiaoJinJin%2FreactExplain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAttackXiaoJinJin%2FreactExplain/lists"}