Skip to content

保存并恢复 (Save & Restore)

在编辑器场景中,您非常需要将用户操作后呈现的画布(Nodes 和 Edges 的状态及视图状态)持久化,并在随后重新加载它们。在 Flow 中,我们可以利用自带的方法方便地提取和恢复整个画布状态。

基础保存与恢复示例

修改下方的图表,然后尝试“保存”和“恢复”按钮。我们使用浏览器的 localStorage 来模拟持久化数据层。

节点 1
节点 2
状态保存与加载

核心原理

捕捉图表状态以进行持久化主要有两种方式:

  1. 从引擎实例捕获:这是最准确的方法。通过 ref 访问 FlowInstance 并调用 getNodes()getEdges() 等方法。这将检索所有实体的当前内部状态,包括用户驱动的位置更改。
  2. 外部响应式状态同步:如果您正在使用全局状态管理器(如 Pinia),您可以在组件发出更改事件(如 @nodes-drag-end)时同步您的 nodesedges 数组。

实例方法参考

方法名返回类型说明
getNodes()Node[]返回引擎中当前所有节点的深度快照。
getEdges()Edge[]返回引擎中当前所有连线的深度快照。
exportJson()string[(需要导出插件)] 将内部图表数据包装成序列化字符串。

Released under the MIT License.