XYFlow - Инструментарий для создания интерактивных нод-графов
Когда в последний раз вам нужно было визуализировать сложные взаимосвязи в интерфейсе? Может быть, вы разрабатывали редактор workflow, систему обработки данных или просто хотели наглядно показать логические цепочки? На помощь приходит XYFlow — семейство библиотек для создания нод-базированных интерфейсов.
Что такое XYFlow?
XYFlow — это два мощных инструмента в одном репозитории:
- React Flow (32k+ ⭐ на GitHub) — библиотека для React
- Svelte Flow — аналогичное решение для Svelte
Оба инструмента позволяют создавать интерактивные графы с узлами и соединениями, которые можно перетаскивать, масштабировать и кастомизировать под любые нужды.
Ключевые возможности
-
Готовые компоненты из коробки:
- Мини-карта для навигации по большому графу
- Панель управления с кнопками масштабирования
- Различные варианты фона (точки, линии)
-
Полная кастомизация:
- Собственные типы узлов
- Стилизация соединений
- Обработчики событий (клики, перетаскивание)
-
Производительность:
- Оптимизированный рендеринг
- Поддержка больших графов
Как это выглядит в коде?
Вот минимальный пример для React:
import { ReactFlow, MiniMap, Controls, Background } from '@xyflow/react';
function Flow() {
const [nodes] = useState([
{ id: '1', position: { x: 0, y: 0 }, data: { label: 'Start' } },
{ id: '2', position: { x: 100, y: 100 }, data: { label: 'Process' } }
]);
return (
<ReactFlow nodes={nodes}>
<MiniMap />
<Controls />
<Background />
</ReactFlow>
);
}
Где это можно применить?
- Визуальные редакторы workflow
- Системы проектирования бизнес-процессов
- Инструменты для машинного обучения
- Графические конструкторы интерфейсов
- Любые приложения, где нужно визуализировать связи между элементами
Под капотом
Библиотеки написаны на TypeScript и используют:
- Современные хуки React (для React Flow)
- Svelte-компоненты (для Svelte Flow)
- Общую систему координат и математику (@xyflow/system)
Стоит ли пробовать?
Если вам нужен надежный инструмент для работы с нод-графами — определенно да. XYFlow предлагает:
- Готовое решение для популярных фреймворков
- Гибкость и кастомизацию
- Активное сообщество и поддержку
Для личных проектов библиотеки полностью бесплатны (MIT License), а коммерческие пользователи могут поддержать разработчиков через GitHub Sponsors.
Готовы попробовать? Документация с живыми примерами ждет вас на reactflow.dev и svelteflow.dev.