当前位置: 首页 > article >正文

React源码学习(一):如何学习React源码

本系列源码学习,是基于 v16.13.1,v17.x与v16.x区别并不太大!

一、如何正确的学习React源码?

  1. 找到Github,转到React仓库,fork / clone源码:React
  2. 查看Readme,在Documentation中有Contributing Guide(参与贡献指南)
  3. 点击跳转后,在“Development Workflow”中有如下一段话:

The easiest way to try your changes is to run yarn build react/index,react-dom/index --type=UMD and then open fixtures/packaging/babel-standalone/dev.html. This file already uses react.development.js from the build folder so it will pick up your changes.

最简单的方法就是先 git 下载 react 官方源码,然后编译成 UMD 库,再使用 fixtures/packaging/babel-standalone/dev.html,这个文件默认使用 react.development.js

我们可以修改react源码,然后build,再打开/刷新dev.html(也可以自己demo),就能学习了。

二、流程步骤:

  1. fork / clone source code;
  2. 进入根目录;
  3. yarn (国内情况...也许要墙);
  4. yarn build react/index,react-dom/index --type=UMD

三、关注官方资源

【React官方博客】

  • Behind the Scenes: Improving the Repository Infrastructure 这篇介绍的是 React 项目仓库的基础设施。
  • Sneak Peek: Beyond React 16
  • React Fiber Architecture Andrew Clark对Fiber架构的介绍

Dan Abramov 最近在 JSConf 上对 React 未来的一些新特性的介绍 - Beyond React 16(墙)

四、附录

【达人分享】
  • Evan You 介绍前端框架数据变化侦测原理的 Talk;Vue 文档中也有 Reactivity in Depth 这样的介绍原理的章节
  • Sean Larkin 的 Everything is a plugin! Mastering webpack from the inside out 介绍了 Webpack 的核心组件 Tapable
  • James Kyle 的 How to Build a Compiler 可以让我们了解 Babel 转译代码的基本流程
【其它博客】
  • 完全理解React Fiber
  • React16.2的fiber架构
  • 一看就晕的React事件机制
  • React 中常见的动画实现方式


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.kler.cn/a/306085.html

相关文章:

  • 天才的懈怠 : 平衡二叉树
  • docker之容器设置开机自启(4)
  • 【贪心算法】No.1---贪心算法(1)
  • 【webrtc】 RTP 中的 MID(Media Stream Identifier)
  • 自动驾驶为什么需要时间同步?高精度时间同步如何实现?
  • 【C++】 C++游戏设计---五子棋小游戏
  • Python学习——【1.2】数据类型、数据类型转换
  • yjs04——matplotlib的使用(多个坐标图)
  • Java网络编程 TCP通信(Socket 与 ServerSocket)
  • (批处理)设置延时+设置关机倒计时
  • Flink CEP(复杂事件处理)高级进阶
  • 【大数据方案】智慧大数据平台总体建设方案书(word原件)
  • 应用层协议HTTP介绍
  • 【自主搭建博客网站 第一篇章】前情提要
  • ??Ansible——ad-hoc
  • 修改 HTTP 和 HTTPS 代理设置为 `http://127.0.0.1:8118
  • 【Android Studio】API 29(即Android 10)或更高版本,在程序启动时检查相机权限,并在未获取该权限时请求它
  • AI学习指南深度学习篇-Adam的基本原理
  • 计算机三级 - 数据库技术 - 第十三章 大规模数据库架构 笔记
  • 速通LLaMA1:《LLaMA: Open and Efficient Foundation Language Models》全文解读
  • ARM驱动学习之9注册字符类设备
  • Robot Operating System——带有时间戳和坐标系信息的线速度和角速度
  • 51单片机+proteus+(DS1302+DS18B20)
  • css选择器有几种?选择器的优先级是怎样的?
  • [网络][CISCO]Cisco-PIX配置详解
  • Leetcode 3290. Maximum Multiplication Score