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

feat: 优化删除权限的位运算 #34

Open
wants to merge 4 commits 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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
"singleQuote": true,
"semi": true,
"trailingComma": "none",
"bracketSpacing": true
"bracketSpacing": true,
"endOfLine": "auto"
}
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
- 💪 功能完备,当前可跑通官方测试用例数量:34
- 🚶 按`Git Tag`划分迭代步骤,记录从 0 实现的每个功能

如果想加入项目对应的`源码交流群`,和 7000+小伙伴们一起交流`React`,可以加我微信,备注「开发」:
如果想跟着我学习「如何从0到1实现React18」,可以购买如下课程:

<img width="200" src="https://user-images.githubusercontent.com/15828041/204089108-eaccf461-1521-4a68-bcd1-d04aef1bd6ad.png" alt="卡颂" />

<img width="200" src="https://user-images.githubusercontent.com/15828041/181666959-57941b01-61b3-47db-9d73-ecc9ae175112.png" alt="卡颂的微信" />

## TODO List

Expand Down
10 changes: 5 additions & 5 deletions packages/react-reconciler/src/commitWork.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ const commitMutationEffectsOnFiber = (
if ((flags & Placement) !== NoFlags) {
// 插入/移动
commitPlacement(finishedWork);
finishedWork.flags &= ~Placement;
finishedWork.flags ^= Placement;
}
if ((flags & ChildDeletion) !== NoFlags) {
const deletions = finishedWork.deletions;
Expand All @@ -79,16 +79,16 @@ const commitMutationEffectsOnFiber = (
commitDeletion(childToDelete, root);
});
}
finishedWork.flags &= ~ChildDeletion;
finishedWork.flags ^= ChildDeletion;
}
if ((flags & Update) !== NoFlags) {
commitUpdate(finishedWork);
finishedWork.flags &= ~Update;
finishedWork.flags ^= Update;
}
if ((flags & PassiveEffect) !== NoFlags) {
// 收集因deps变化而需要执行的useEffect
commitPassiveEffect(finishedWork, root, 'update');
finishedWork.flags &= ~PassiveEffect;
finishedWork.flags ^= PassiveEffect;
}
};

Expand Down Expand Up @@ -309,7 +309,7 @@ export function commitHookEffectListDestroy(flags: Flags, lastEffect: Effect) {
destroy();
}
// 后续不会再触发create
effect.tag &= ~HookHasEffect;
effect.tag ^= HookHasEffect;
});
}

Expand Down