Skip to content
目录

同构架构(Isomorphic)

Univer 目标是在 浏览器、Node.js、Web Worker 等环境复用同一套核心逻辑(数据、命令、公式),仅将 DOM / Canvas / 网络 差异隔离到适配层与 UI 插件。


1. 设计原则

原则做法
核心无 DOM逻辑插件不 document
环境适配isBrowser / isNode 分支或注入实现
UI 可选Node 只跑公式/导入导出,不挂 Canvas

2. 环境能力矩阵

能力浏览器NodeWorker
命令 + Model✓(常公式)
Canvas 渲染视方案通常 ✗
协同 RPC✓(服务端)少见

3. Node 场景

  • 服务端 解析 xlsx、批量公式、生成 snapshot
  • 无 UI 插件,只 registerPlugin 逻辑包。

4. Web Worker

  • 公式、大文件解析放 Worker,主线程 postMessage 传递 纯数据(snapshot 片段、计算结果)。
  • 避免传递函数或 DOM 引用。

5. 构建与测试

  • 多入口打包(browser / node)。
  • 单测针对 Command + Model,不启动 Canvas。

6. 总结

同构的关键是 逻辑/UI 插件分离(见 02);写功能前先问「这段能否在无 DOM 环境跑」。

MIT License.