预发布框架参考

React 适配器源码参考

在 React 中渲染调用方持有的投影,同时保持工作簿边界清晰。

状态:仅仓库源码

@einfach/react-excel 是版本为 0.0.0 的私有 workspace 包。它尚未发布 npm, 不提供默认 Worker 或 WASM 后端,也不是开箱即用的电子表格应用。现在不要在产品文档中写 npm 安装命令。

1. 安装仓库 workspace

React 适配器当前从这个仓库中消费,因此先安装一次 workspace 依赖,再运行它的 fixture。

git clone https://github.com/allroad88888888/einfach-excel.git
cd einfach-excel
pnpm install

2. 运行已验证的 React fixture

NO_PROXY=localhost,127.0.0.1 pnpm --filter @einfach/react-excel run e2e

此命令会启动仓库内 Vite fixture、打开 Chromium、从一个受控单元格拖动到另一个单元格,并验证投影后的 选区。成功时会报告一个通过的 React adapter 测试。

3. 了解当前可用边界

受控网格渲染由你的应用已经持有的可见单元格投影。
Provider hooks将选区、导航、编辑、剪贴板与历史桥接到 UI-core atoms。
显式后端由你提供 SpreadsheetBackend,不会暗中附带数据或计算运行时。

4. 组合一个受控投影

这是一种仓库源码模式,不是包安装配方。React 宿主拥有 backend、cells 与请求窗口。

import type {
  CellRange,
  DisplayCell,
  SpreadsheetBackend,
} from '@einfach/spreadsheet-ui-core'
import {
  SpreadsheetGridView,
  SpreadsheetUiProvider,
} from '@einfach/react-excel'

type ProjectionProps = {
  backend: SpreadsheetBackend
  cells: readonly DisplayCell[]
  window: CellRange
}

export function ReactSpreadsheet({ backend, cells, window }: ProjectionProps) {
  return (
    <SpreadsheetUiProvider backend={backend}>
      <SpreadsheetGridView cells={cells} window={window} />
    </SpreadsheetUiProvider>
  )
}

5. 这些职责仍由宿主承担

  1. 一个工作簿生命周期内保持 backend 实例稳定;替换它会有意创建新的 UI core。
  2. 获取或推导有界投影,再将 cells 与 window 传给受控视图。
  3. 增加交互时使用最近 provider 的 hooks;不要再建一份 React 状态来保存电子表格产品状态。

6. 查看交互参考实现

还没有准备好的部分

目前没有已发布的 React 版本、默认 Worker 工厂、WASM 打包、浏览器兼容承诺或完整工作台外壳。若现在要正式接入, 请使用受支持的 Solid 路线,或在 React 适配器成熟前实现backend port。