xyflow是用于构建交互式图表的可定制React组件

xyflow强大的开源库,可用于使用 React 或 Svelte 构建基于节点的 UI
强大的开源库,可用于使用 React 或 Svelte 构建基于节点的 UI。开箱即用,可无限自定义。

xyflow mono 仓库

xyflow 仓库包含四个软件包:

商业用途

您在个人项目中使用 React Flow 或 Svelte Flow 吗? 太棒了!无需赞助,您可以通过报告发现的任何错误、发送项目截图以及在 Github 上为我们点赞来支持我们🌟

您在组织中使用 React Flow 或 Svelte Flow 并从中获利吗? 太棒了!我们依靠您的支持来确保我们的库遵循 MIT 许可证进行开发和维护,这正是我们想要的。对于 React Flow,您可以在 React Flow Pro 网站 上进行支持;对于我们的两个库,您可以通过 Github 赞助商 进行支持。

入门

最好的入门方法是查看 React FlowSvelte Flow 的学习部分。但是,如果您想快速了解如何安装和使用这些库,可以在这里查看:

安装

sh 复制代码
npm install @xyflow/react

基本用法

jsx 复制代码
import { useCallback } from 'react';
import {
ReactFlow,
MiniMap,
Controls,
Background,
useNodesState,
useEdgesState,
addEdge,
} from '@xyflow/react';

import '@xyflow/react/dist/style.css';

const initialNodes = [
{ id: '1', position: { x: 0, y: 0 }, data: { label: '1' } },
{ id: '2', position: { x: 0, y: 100 }, data: { label: '2' } },
];

const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];

function Flow() {
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);

const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]);

return (
  <ReactFlow
    nodes={nodes}
    edges={edges}
    onNodesChange={onNodesChange}
    onEdgesChange={onEdgesChange}
    onConnect={onConnect}
  >
    <MiniMap />
    <Controls />
    <Background />
  </ReactFlow>
);
}

export default Flow;
xyflow基本用法

发布

我们将 changesetschangeset Github action 结合使用,以发布软件包。大致思路如下:

  1. 为新功能、更新和修复创建 PR(如果与变更日志相关,则使用变更集)
  2. 合并到主分支
  3. changset 创建一个 PR,用于根据变更集调整所有软件包
  4. 如果要发布到 Github 和 npm,请合并变更集 PR

xyflow 构建

React Flow 和 Svelte Flow 由 xyflow 团队 维护。如果您需要帮助或想与我们洽谈合作事宜,请通过我们的 联系表单 或加入我们的 Discord 服务器 联系我们。

许可证

React Flow 和 Svelte Flow 均遵循 MIT 许可证。

关于项目

xyflow是用于构建基于节点的编辑器和交互式图表的可定制 React 组件。React Flow 的核心是创建交互式流程图——由边连接的节点集合。
MIT
Typescript
33,945
2213
128
2019-07-15
2025-11-25

增长趋势 - stars