學習快速入門

快速入門

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 中最重要的元件開始:SvelteFlowControlsBackgroundMiniMap。一個基本的流程圖看起來像這樣

<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 星星 ⭐