跳到主要内容

React 内部共享

客户端内部使用,不要使用或警告用户他们无法升级

原文就这么长
import * as React from 'react';

const ReactSharedInternals =
React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;

export default ReactSharedInternals;

该文件导出内容的实现是通过不通的宿主环境实现的(如 DOM 、 Native )。

设计原理

  • 解耦react 包本身不包含 reconciler (协调器) 或 Scheduler (调度器)的具体实现,这些由 react-domreact-native 等渲染器提供的
  • 共享状态 : Hooks 、 Context 、错误边界等功能需要跨模块访问当前的 Fiber 树状态、 dispatch 等,通过 ReactSharedInternals 可以实现这种共享
  • 构建灵活性 : 不同平台( Web 、 Native 、 Test Renderer )可以注入不同的内部实现,而 react 包包吃通用