LogicFlow初上手

3,949 阅读2分钟

LogicFlow初上手

因为之前用的G6-edit,转过来之后好用了太多,方便了太多,主要是G6-edit没有完整详细的文档,好像也没开源不能商用。

logicflow 有非常好的流程图编辑功能

通过 npmyarn 来安装 LogicFlow

# npm
$ npm install @logicflow/core --save

# yarn
$ yarn add @logicflow/core

安装完成之后,使用 importrequire 进行引用。

import LogicFlow from '@logicflow/core';
import '@logicflow/core/dist/style/index.css';

用法非常简单

1.通过 JSON 的数据格式,来让 LogicFlow 渲染。该数据中需要有 nodes(节点) 和 edges(边) 字段,分别用数组表示:

const data = {
  // 节点
  nodes: [
    {
      id: 50,
      type: 'rect',
      x: 100,
      y: 150,
      text: '你好',
    },
    {
      id: 21,
      type: 'circle',
      x: 300,
      y: 150,
    },
  ],
  // 边
  edges: [
    {
      type: 'polyline',
      sourceNodeId: 50,
      targetNodeId: 21,
    },
  ],
};

2.创建一个 LogicFlow 的实例,此时可以传入一些参数来控制画布,比如画布的大小。

const lf = new LogicFlow({
  container: document.querySelector('#container'),
  stopScrollGraph: true,
  stopZoomGraph: true,
  width: 500,
  height: 500,
  grid: {
    type: 'dot',
    size: 20,
  },
});

3.通过刚才创建的实例,来渲染画布。

lf.render(data);

到此,我们就创建好了一个最简单的示例。

image.png

logicflow的节点你可以任意拖拽,两个节点之间的连线也可以自由连接,可编辑性非常强大。

logicflow 的相关API非常强大,包括控制栏还有拖拽栏都可以利用API非常简单的实现

控制面板

import LogicFlow from '@logicflow/core';
import { Control } from '@logicflow/extension';
import '@logicflow/extension/lib/style/index.css'

LogicFlow.use(Control);

image.png

拖拽面板

import LogicFlow from '@logicflow/core';
import { DndPanel } from '@logicflow/extension';
import '@logicflow/extension/lib/style/index.css'

LogicFlow.use(DndPanel);

image.png

等等功能都可以调用API快速在实现。包括节点的各种API真的是功能非常强大又非常贴心的框架,简单滴代码开发一个可拖拽的流程图编辑器。

还有他的自定义程度也非常高,如果API自带模板不能满足也可以高度自定义组件以及相关方法。