[ReactFlow] 다이어그램 툴 만들기 #0

2024. 10. 30. 10:21·FE

유명한 라이브러리 중 하나인 reactflow를 활용하여 다이어그램 편집 툴을 개발해본 경험을 블로그로 포스팅해보고자 한다.

이번 포스팅에서는 전체적인 개요와 라이브러리 설치에 대해 알아보려고 한다.

 

개요는 다음 링크를 통하여 확인 할 수 있다.

https://reactflow.dev/learn

 

Quickstart - React Flow

React Flow quickstart that shows how to install the package, use it and where to find example apps

reactflow.dev

 

먼저, 라이브러리 설치명령어는 다음과 같다.

npm install reactflow

or

yarn add reactflow

 

Quickstart 에 써져있는 예시문을 응용하여 로컬에서 직접 띄어보겠다.

가장 하단에 있는 미니맵, 컨트롤까지 붙여진 코드를 가져와보았다.


import { useCallback } from "react";
import ReactFlow, {
  MiniMap,
  Controls,
  Background,
  useNodesState,
  useEdgesState,
  addEdge,
  Connection,
  Edge,
} from "reactflow";

import "reactflow/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" }];

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

  const onConnect = useCallback(
    (params: Edge | Connection) => setEdges((eds) => addEdge(params, eds)),
    [setEdges]
  );

  return (
    <div style={{ width: "100vw", height: "100vh" }}>
      <ReactFlow
        nodes={nodes}
        edges={edges}
        onNodesChange={onNodesChange}
        onEdgesChange={onEdgesChange}
        onConnect={onConnect}
      >
        <Controls />
        <MiniMap />
        <Background gap={12} size={1} />
      </ReactFlow>
    </div>
  );
};
export default ReactFlowExample;

 

이 상태에서 로컬을 실행해보면 다음과 같이 보인다.

 

 

리액트 플로우 라이브러리와 관련된 코드를 한번 간략히 살펴보자.

  • ReactFlow : nodes와 edges로 이루어진 형태들을 화면에 표현해주는 부분이다.
  • Controls : 현재 스크린샷에서는 좌측 하단에 보여지는 도구들이다.
  • MiniMap : 우측 하단에 보이는 미니맵
  • Background : 캔버스의 배경을 보여주는 부분으로 어두운 테마를 입히거나, 점선, 라인 등등의 점자를 스타일링해줄 수 있다.

다음 포스팅에서는 리액트 플로우 nodes 에 대해 분석해보고, 커스텀해보는 시간을 가져보겠다!

 

 

'FE' 카테고리의 다른 글

[ReactFlow] 다이어그램 툴 만들기 #2  (0) 2024.10.30
[ReactFlow] 다이어그램 툴 만들기 #1  (0) 2024.10.30
[ChartJS / react-chartjs-2] 클릭이벤트 적용해보기 #5  (0) 2024.10.29
[ChartJS / react-chartjs-2] mix형(bar/line) 차트 만들어보기 #4  (2) 2024.10.29
[ChartJS / react-chartjs-2] options 를 알아보기 #3  (0) 2024.10.29
'FE' 카테고리의 다른 글
  • [ReactFlow] 다이어그램 툴 만들기 #2
  • [ReactFlow] 다이어그램 툴 만들기 #1
  • [ChartJS / react-chartjs-2] 클릭이벤트 적용해보기 #5
  • [ChartJS / react-chartjs-2] mix형(bar/line) 차트 만들어보기 #4
웹개발주인장
웹개발주인장
안녕하세요 :) velog와 티스토리를 동시에 운영중에 있습니다! https://velog.io/@hannah3406
  • 웹개발주인장
    Hannah
    웹개발주인장
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • FE (17)
      • BE (10)
      • 개발CS (0)
      • 잡담 (0)
      • 토이프로젝트 (0)
  • 인기 글

  • 태그

    certbot
    pm2
    Nginx
    scp명령어
    react
    react-chartjs-2
    로드밸런서
    gcp 도메인
    Google Cloud Platform
    chartjs
    chartjs click
    서버
    typscript
    Nextjs
    다이어그램
    TypeScript
    트리구조
    ssl 인증
    WINDOWING
    HTTPS
    무한스크롤
    react-window
    infinite scroll
    reactflow
    chartjs2
    nestjs
    GCP
    배포
    google clioud platform
    node.js
  • hELLO· Designed By정상우.v4.10.0
웹개발주인장
[ReactFlow] 다이어그램 툴 만들기 #0
상단으로

티스토리툴바