跳到主要内容

10.2. antv/x6

注册

x6 提供了注册布局、节点、边、工具栏、右键菜单等功能,但这些功能都是挂载在全局的。因此,在退出组件的时候应当同时销毁挂载在全局的内容,以免对其他组件造成影响。

推荐对于注册的内容,使用方法进行封装,并在返回值中包含销毁方法,以便在组件销毁时调用。例:

export function registerERPortLayout() {
Graph.registerPortLayout(
ER_PORT_LAYOUT,
(portsPositionArgs) => {
return portsPositionArgs.map((_, index) => {
return {
position: {
x: 0,
y: (index + 1) * ER_LINE_HEIGHT,
},
angle: 0,
};
});
},
true
);
return () => Graph.unregisterPortLayout(ER_PORT_LAYOUT);
}

// 使用
useEffect(() => {
const unregister = registerERPortLayout();
return () => {
unregister();
};
}, []);