path:packages/shared/ReactSideEffectTags.js
React 副作用标记
源码
export type SideEffectTag = number;// Don't change these two values. They're used by React Dev Tools.export const NoEffect = /* */ 0b000000000000;export const PerformedWork = /* */ 0b000000000001;// You can change the rest (and add more).export const Placement = /* */ 0b000000000010;export const Update = /* */ 0b000000000100;export const PlacementAndUpdate = /* */ 0b000000000110;export const Deletion = /* */ 0b000000001000;export const ContentReset = /* */ 0b000000010000;export const Callback = /* */ 0b000000100000;export const DidCapture = /* */ 0b000001000000;export const Ref = /* */ 0b000010000000;export const Snapshot = /* */ 0b000100000000;export const Passive = /* */ 0b001000000000;// Passive & Update & Callback & Ref & Snapshotexport const LifecycleEffectMask = /* */ 0b001110100100;// Union of all host effectsexport const HostEffectMask = /* */ 0b001111111111;export const Incomplete = /* */ 0b010000000000;export const ShouldCapture = /* */ 0b100000000000;复制代码
遗留问题
为什么这些标记要使用二进制数表示?在 React 源码中很多地方使用 |=
的运算符