快速入門
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 伺服器、在 Twitter 上發文標記我們,或發送電子郵件至 info@xyflow.com
社群參與: 在我們的 Discord 伺服器中提問和回答問題,或參與 Github 上的討論。
修正錯誤: 我們無法捕捉所有錯誤。請先檢查現有的問題和討論,然後建立一個新問題來告訴我們發生了什麼事。
財務贊助: 如果您是希望確保 Svelte Flow 持續維護的組織,請透過 info@xyflow.com 與我們聯繫。
當然,我們喜歡 Github 星星 ⭐