Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: repository branch #105

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/concurrent/prepare.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

但是当我们配合`时间切片`,就能根据宿主环境性能,为每个`工作单元`分配一个`可运行时间`,实现“异步可中断的更新”。

于是,[scheduler](https://github.com/facebook/react/tree/master/packages/scheduler)(调度器)产生了。
于是,[scheduler](https://github.com/facebook/react/tree/main/packages/scheduler)(调度器)产生了。

## 架构运行策略 —— lane模型

Expand Down
8 changes: 4 additions & 4 deletions docs/preparation/file.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

目录下的文件夹非常多,我们来看下:

### [react](https://github.com/facebook/react/tree/master/packages/react)文件夹
### [react](https://github.com/facebook/react/tree/main/packages/react)文件夹

React的核心,包含所有全局 React API,如:

Expand All @@ -33,11 +33,11 @@ React的核心,包含所有全局 React API,如:

这些 API 是全平台通用的,它不包含`ReactDOM`、`ReactNative`等平台特定的代码。在 NPM 上作为[单独的一个包](https://www.npmjs.com/package/react)发布。

### [scheduler](https://github.com/facebook/react/tree/master/packages/scheduler)文件夹
### [scheduler](https://github.com/facebook/react/tree/main/packages/scheduler)文件夹

Scheduler(调度器)的实现。

### [shared](https://github.com/facebook/react/tree/master/packages/shared)文件夹
### [shared](https://github.com/facebook/react/tree/main/packages/shared)文件夹

源码中其他模块公用的**方法**和**全局变量**,比如在[shared/ReactSymbols.js](https://github.com/facebook/react/blob/1fb18e22ae66fdb1dc127347e169e73948778e5a/packages/shared/ReactSymbols.js)中保存`React`不同组件类型的定义。

Expand Down Expand Up @@ -84,7 +84,7 @@ export let REACT_FRAGMENT_TYPE = 0xeacb;
- react-refresh # “热重载”的React官方实现
```

### [react-reconciler](https://github.com/facebook/react/tree/master/packages/react-reconciler)文件夹
### [react-reconciler](https://github.com/facebook/react/tree/main/packages/react-reconciler)文件夹

我们需要重点关注**react-reconciler**,在接下来源码学习中 80%的代码量都来自这个包。

Expand Down
6 changes: 3 additions & 3 deletions docs/preparation/source.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
了解了源码的文件目录,这一节我们看看如何调试源码。

即使版本号相同(当前最新版为`17.0.0 RC`),但是`facebook/react`项目`master`分支的代码和我们使用`create-react-app`创建的项目`node_modules`下的`react`项目代码还是有些区别。
即使版本号相同(当前最新版为`17.0.0 RC`),但是`facebook/react`项目`main`分支的代码和我们使用`create-react-app`创建的项目`node_modules`下的`react`项目代码还是有些区别。

因为`React`的新代码都是直接提交到`master`分支,而`create-react-app`内的`react`使用的是稳定版的包。
因为`React`的新代码都是直接提交到`main`分支,而`create-react-app`内的`react`使用的是稳定版的包。

为了始终使用最新版`React`教学,我们调试源码遵循以下步骤:

1. 从`facebook/react`项目`master`分支拉取最新源码
1. 从`facebook/react`项目`main`分支拉取最新源码
2. 基于最新源码构建`react`、`scheduler`、`react-dom`三个包
3. 通过`create-react-app`创建测试项目,并使用步骤2创建的包作为项目依赖的包

Expand Down
2 changes: 1 addition & 1 deletion docs/state/mental.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

## 并发更新的React

当有了`代码版本控制`,有紧急线上bug需要修复时,我们暂存当前分支的修改,在`master分支`修复bug并紧急上线。
当有了`代码版本控制`,有紧急线上bug需要修复时,我们暂存当前分支的修改,在`main分支`修复bug并紧急上线。

<img :src="$withBase('/img/git2.png')" alt="流程2">

Expand Down
2 changes: 1 addition & 1 deletion docs/state/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ const queue: UpdateQueue<State> = {

- baseState:本次更新前该`Fiber节点`的`state`,`Update`基于该`state`计算更新后的`state`。

> 你可以将`baseState`类比`心智模型`中的`master分支`。
> 你可以将`baseState`类比`心智模型`中的`main分支`。

- `firstBaseUpdate`与`lastBaseUpdate`:本次更新前该`Fiber节点`已保存的`Update`。以链表形式存在,链表头为`firstBaseUpdate`,链表尾为`lastBaseUpdate`。之所以在更新产生前该`Fiber节点`内就存在`Update`,是由于某些`Update`优先级较低所以在上次`render阶段`由`Update`计算`state`时被跳过。

Expand Down