Stress Test
This example shows how Vue Flow performs when rendering hundreds of nodes and edges.
import type { Edge, Node } from '@xyflow/vue';
// px strings on `style` (Vue's `:style` doesn't px-ify numeric values)
export function initialElements(xNodes = 10, yNodes = 10): { nodes: Node[]; edges: Edge[] } {
const nodes: Node[] = [];
const edges: Edge[] = [];
let nodeId = 1;
let recentNodeId: number | null = null;
for (let y = 0; y < yNodes; y++) {
for (let x = 0; x < xNodes; x++) {
const position = { x: x * 100, y: y * 50 };
const data = { label: `Node ${nodeId}` };
nodes.push({
id: `stress-${nodeId}`,
style: { width: '50px', fontSize: '11px' },
data,
position,
});
if (recentNodeId && nodeId <= xNodes * yNodes) {
edges.push({
id: `${x}-${y}`,
source: `stress-${recentNodeId}`,
target: `stress-${nodeId}`,
});
}
recentNodeId = nodeId;
nodeId++;
}
}
return { nodes, edges };
}Last updated on