跳到正文
QuireKit MSFE
开发者文档
v0.0.0 · 实验版本

React 接入

使用 React 适配器挂载编辑器与 Portal,保持同一应用的 Context。

最小接入

MsfeEditorContent 负责挂载和卸载,onReady 提供当前实例。options 是初始配置,更新已经挂载的编辑器时调用实例方法。

tsx

自定义宿主布局

需要自行放置挂载元素时,使用 useMsfeEditor(parentRef, optionsFactory)。它返回当前 session 或 null;session 包含 editor 和 host。将 ReactNodeViewHost 放在原有 Provider 树内。

tsx

Context 与 StrictMode

ReactNodeViewRenderer() 和 ReactComponentViewRenderer() 使用同一宿主内的 Portal。开发 StrictMode 会重新执行 effect 生命周期,onReady 也可能再次调用;宿主不要把它当作只会执行一次的业务动作。

QuireKit 当前的公共组件库提供 Vue 组件。React 适配器允许使用应用自己的 React UI,字段和事务协议保持一致。

React NodeView 的实现形状

组件接收 nodeView,字段 codec 与 Vue 共用。不要用 createRoot 给每个节点挂一棵独立 React 树;使用适配器的 Portal Host 保留 Context。

tsx

先从 节点教程 的接入源码复制与框架无关的 status.ts 和 types.ts 到此组件旁。生产界面将示意原生 button 换成你的 React 组件库控件。通用控件则使用 ReactComponentViewRenderer,组件接收 view,不混用 nodeView 协议。

更新和清理

保存、模式切换、外部增量与 Vue 使用相同实例 API。不要把 onChange 得到的全文回写 options 造成 remount;同时避免在 effect 中捕获过期 editor。每次 session 改变时重新建立宿主订阅并返回清理。

React 示例代码展示的是公共接入形状;本站的交互示例运行于 Vue 文档应用。消费项目仍应覆盖自己的 StrictMode、SSR 和路由生命周期。

MSFE · QuireKitMarkdown 源码始终属于你。