BlogReactReconcilerFiberFlags

React-reconciler | FiberFlags (19.0.0)

Render, Commit phase에서 Fiber가 어떤 작업을 해야하는지 나타냅니다.

react/packages/react-reconciler/src/ReactFiberFlags.js
export const NoFlags = /*                      */ 0b0000000000000000000000000000;
export const PerformedWork = /*                */ 0b0000000000000000000000000001;
export const Placement = /*                    */ 0b0000000000000000000000000010;
export const DidCapture = /*                   */ 0b0000000000000000000010000000;
export const Hydrating = /*                    */ 0b0000000000000001000000000000;
export const Update = /*                       */ 0b0000000000000000000000000100;
export const Cloned = /*                       */ 0b0000000000000000000000001000;
export const ChildDeletion = /*                */ 0b0000000000000000000000010000;
export const ContentReset = /*                 */ 0b0000000000000000000000100000;
export const Callback = /*                     */ 0b0000000000000000000001000000;
export const ForceClientRender = /*            */ 0b0000000000000000000100000000;
export const Ref = /*                          */ 0b0000000000000000001000000000;
export const Snapshot = /*                     */ 0b0000000000000000010000000000;
export const Passive = /*                      */ 0b0000000000000000100000000000;
export const Visibility = /*                   */ 0b0000000000000010000000000000;
export const StoreConsistency = /*             */ 0b0000000000000100000000000000;
export const ScheduleRetry = StoreConsistency;
export const ShouldSuspendCommit = Visibility;
export const DidDefer = ContentReset;
export const FormReset = Snapshot;
export const LifecycleEffectMask = 
  Passive | 
  Update | 
  Callback | 
  Ref | 
  Snapshot | 
  StoreConsistency;
export const HostEffectMask = /*               */ 0b0000000000000111111111111111;
export const Incomplete = /*                   */ 0b0000000000001000000000000000;
export const ShouldCapture = /*                */ 0b0000000000010000000000000000;
export const ForceUpdateForLegacySuspense = /* */ 0b0000000000100000000000000000;
export const DidPropagateContext = /*          */ 0b0000000001000000000000000000;
export const NeedsPropagation = /*             */ 0b0000000010000000000000000000;
export const Forked = /*                       */ 0b0000000100000000000000000000;
export const RefStatic = /*                    */ 0b0000001000000000000000000000;
export const LayoutStatic = /*                 */ 0b0000010000000000000000000000;
export const PassiveStatic = /*                */ 0b0000100000000000000000000000;
export const MaySuspendCommit = /*             */ 0b0001000000000000000000000000;
export const BeforeMutationMask: number =
  Update |
  Snapshot |
  (enableCreateEventHandleAPI ? ChildDeletion | Visibility : 0);
export const MutationMask = 
  Placement | 
  Update | 
  ChildDeletion | 
  ContentReset | 
  Ref | 
  Hydrating | 
  Visibility | 
  FormReset;
export const LayoutMask = Update | Callback | Ref | Visibility;
export const PassiveMask = Passive | Visibility | ChildDeletion;
export const StaticMask = LayoutStatic | PassiveStatic | RefStatic | MaySuspendCommit;
 

NoFlags

  • 초기 상태, 플래그가 설정되지 않은 상태입니다.

PerformedWork

  • 작업이 완료 되었음을 나타냅니다.

Placement

  • 컴포넌트가 새롭게 마운트될 때 배치해야 함을 나타냅니다.

DidCapture

  • Error Boundary가 에러를 캡처했음을 나타냅니다.

Hydrating

  • Hydration 중 임을 나타냅니다.

Update

  • 상태나 props 업데이트가 필요함을 나타냅니다.

Cloned

  • Fiber나 요소가 복제되었음을 나타냅니다.

ChildDeletion

  • 자식 Fiber를 삭제해야 함을 나타냅니다.

ContentReset

  • Fiber가 초기화되어야 함을 나타냅니다.

Callback

  • 콜백 함수가 실행되어야 함을 나타냅니다.

ForceClientRender

  • 클라이언트 강제 렌더링을 나타냅니다.

Ref

  • 참조를 업데이트하거나 관리하는 플래그입니다.

Snapshot

  • 상태 스냅샷을 나타냅니다.

Passive

  • side effect를 나타냅니다.

Visibility

  • Fiber의 가시성 변경을 나타냅니다.

StoreConsistency

  • 상태 관리의 일관성을 유지하기 위해 사용됩니다.

LifecycleEffectMask

  • 생명주기(Lifecycle) 단계에서 실행되는 모든 사이드 이펙트의 집합입니다.

HostEffectMask

  • 호스트 컴포넌트(DOM 요소)와 관련된 커밋 단계에서 실행되는 모든 플래그의 조합입니다.

Incomplete

  • 작업이 완료되지 않았음을 나타냅니다.

ShouldCapture

  • Error Boundary가 에러를 포착하여 처리해야 함을 나타냅니다.

ForceUpdateForLegacySuspense

  • 레거시 Suspense 구현에서 강제로 업데이트를 트리거하도록 지정합니.

DidPropagateContext

  • Context API에서 특정 Fiber가 해당 컨텍스트 변경을 상위에서 하위로 성공적으로 전파했음을 나타냅니다.

NeedsPropagation

  • 컨텍스트 값이 하위 컴포넌트로 전달되어야 함을 나타냅니다.

Forked

  • Concurrent Mode에서 트리가 병렬로 분기(fork)되어 동시적으로 처리하거나 특정 작업의 우선순위를 변경할 때 사용됩니다.

RefStatic

  • Ref 속성을 포함하고 있음을 나타냅니다.

LayoutStatic

  • 레이아웃 효과가 특정 Fiber에서 실행되었거나 실행될 필요가 있을 때 사용됩니다.

MaySuspendCommit

  • Suspense 및 비동기 업데이트와 관련된 작업이 커밋 단계에서 제대로 처리되도록 합니다.

BeforeMutationMask

  • DOM 변경 작업 이전에 실행되어야 하는 효과들의 집합입니다.

MutationMask

  • DOM에 실제 변경을 가하는 작업들의 집합입니다.

LayoutMask

  • 레이아웃 단계에서 발생하는 작업들의 집합입니다.

PassiveMask

  • DOM 업데이트 이후에 실행되는 useEffect와 같은 수동(passive) 효과를 나타냅니다.

StaticMask

  • 클론된 Fiber에서 초기화되지 않는 정적 플래그들의 집합입니다.