跳到主要内容

React 内部分享(服务器)

export type SharedStateServer = {
// 用于 Hooks 的 ReactCurrentDispatcher
H: null | Dispatcher; // ReactCurrentDispatcher for Hooks
// 用于 Cache 的 ReactCurrentCache
A: null | AsyncDispatcher; // ReactCurrentCache for Cache

// enableTaint
// 启用污点
TaintRegistryObjects: WeakMap<Reference, string>;
TaintRegistryValues: Map<string | bigint, TaintEntry>;
TaintRegistryByteLengths: Set<number>;
TaintRegistryPendingRequests: Set<RequestCleanupQueue>;

// DEV-only
// 仅开发用

// ReactDebugCurrentFrame
// React 调试当前帧
getCurrentStack: null | (() => string);

// ReactOwnerStackReset
// React所有者堆栈重置
recentlyCreatedOwnerStacks: 0;
};

// export type RendererTask = boolean => RendererTask | null;
export type RendererTask = (a: boolean) => RendererTask | null;

const ReactSharedInternals: SharedStateServer = {
H: null,
A: null,
} as any;

if (enableTaint) {
ReactSharedInternals.TaintRegistryObjects = TaintRegistryObjects;
ReactSharedInternals.TaintRegistryValues = TaintRegistryValues;
ReactSharedInternals.TaintRegistryByteLengths = TaintRegistryByteLengths;
ReactSharedInternals.TaintRegistryPendingRequests =
TaintRegistryPendingRequests;
}

if (__DEV__) {
// Stack implementation injected by the current renderer.
// 当前渲染器注入的堆栈实现。
ReactSharedInternals.getCurrentStack = null as null | (() => string);
ReactSharedInternals.recentlyCreatedOwnerStacks = 0;
}

export default ReactSharedInternals;