快速入门
Svelte Flow 是一个高度可定制的组件,用于构建交互式图表和基于节点的编辑器,由 React Flow 的创建者打造。
💡
该包目前处于 alpha 状态,正在积极开发中。API 可能会发生变化。您可以在 “新功能”部分 阅读有关最新更改的信息。
在线体验
您可以在 Stackblitz 上查看我们提供的入门项目,无需本地设置即可尝试 Svelte Flow。
Vite 模板
如果您想立即开始,可以使用我们的 vite 模板
npx degit xyflow/vite-svelte-flow-template app-name
安装
获取 Svelte Flow 最新版本的最佳方式是通过 npm、yarn 或 pnpm 进行安装。
npm install @xyflow/svelte
创建你的第一个流程
我们从将 Svelte Flow 的最关键组件堆叠在一起开始:SvelteFlow
、Controls
、Background
和 MiniMap
。一个基本流程看起来像这样
<script>
import { writable } from 'svelte/store';
import {
SvelteFlow,
Controls,
Background,
BackgroundVariant,
MiniMap
} from '@xyflow/svelte';
// 👇 this is important! You need to import the styles for Svelte Flow to work
import '@xyflow/svelte/dist/style.css';
// We are using writables for the nodes and edges to sync them easily. When a user drags a node for example, Svelte Flow updates its position.
const nodes = writable([
{
id: '1',
type: 'input',
data: { label: 'Input Node' },
position: { x: 0, y: 0 }
},
{
id: '2',
type: 'default',
data: { label: 'Node' },
position: { x: 0, y: 150 }
}
]);
// same for edges
const edges = writable([
{
id: '1-2',
type: 'default',
source: '1',
target: '2',
label: 'Edge Text'
}
]);
const snapGrid = [25, 25];
</script>
<!--
👇 By default, the Svelte Flow container has a height of 100%.
This means that the parent container needs a height to render the flow.
-->
<div style:height="500px">
<SvelteFlow
{nodes}
{edges}
{snapGrid}
fitView
on:nodeclick={(event) => console.log('on node click', event.detail.node)}
>
<Controls />
<Background variant={BackgroundVariant.Dots} />
<MiniMap />
</SvelteFlow>
</div>
如何贡献
展示你的作品:将它放到我们的 Discord 服务器、推特 上,或者给我们发送电子邮件至 [email protected]
社区参与:在我们的 Discord 服务器 上提问和解答问题,或者参与 Github 上的讨论。
修复错误:我们不能发现所有错误。请先查看现有问题和讨论,然后创建新问题告诉我们发生了什么。
财务支持:如果您是希望确保 Svelte Flow 继续维护的组织,请联系我们,邮箱地址为 [email protected]
当然,我们也喜欢 Github 星星 ⭐