[ReactFlow] 이제 reactflow 대신 @xyflow/react

2025. 8. 18. 16:54·Development/React
기존 프로젝트에서 reactflow를 사용하고 있었는데, xyflow에 대한 마이그레이션 글을 보고 정리하는 글입니다.

https://reactflow.dev/learn/troubleshooting/migrate-to-v12

 

Migrate to React Flow 12 - React Flow

Use this guide to migrate from React Flow 11 to 12.

reactflow.dev

 

 

  1. 패키지명 변경 및 모노레포 통합
    • 기존 reactflow 패키지가 이제는 @xyflow/react로 완전히 대체되었습니다. 더 이상 기본(default) 방식이 아닌 네임드(named) import 형태로 사용해야 합니다.
    예:

// 이전
import ReactFlow from 'reactflow';

// 이후
import { ReactFlow } from '@xyflow/react';
import '@xyflow/react/dist/style.css';



•    내부적으로는 React Flow뿐 아니라 Svelte Flow도 함께 관리하는 xyflow 모노레포 구조로 통합되었습니다.



⸻

  1. React Flow 12의 주요 기능 확장

React Flow 12 (즉, @xyflow/react)는 많은 기능이 추가되고, 범용적인 개선 사항이 포함되었습니다. 주요 추가 기능은 다음과 같습니다:

• 서버 사이드 렌더링(SSR) 지원
• 클라이언트 자바스크립트 없이도 다이어그램 표현 가능
• 문서 사이트, OG 이미지 생성 등에 활용
• 컴퓨팅 플로우용 훅/헬퍼 도구 제공
• 노드 간 데이터 흐름 처리, 값 파생 등을 쉽게 구현
• 다크 모드 지원
• colorMode="light" | "dark" | "system" 옵션으로 테마 전환
• 향상된 개발자 경험 (TSDoc 도입)
• IDE에서 API 사용 시 풍부한 설명 제공
• 퍼포먼스 최적화
• 렌더링 효율 개선, 초기 상태 일괄 처리 등 처리 성능 향상

또한 아래 부가 기능들이 포함되어 있습니다:
• useConnection, controlled viewport, ViewportPortal, onDelete, onBeforeDelete, isValidConnection, autoPanSpeed, paneClickDistance, 더 유연한 Background 스타일링 등


⸻

  1. API 변화 및 마이그레이션 포인트

버전 11에서 12로 넘어오면서 중요한 브레이킹 체인지도 있었어요. 공식 가이드에 따르면 다음 사항들을 유의해야 합니다:

• reactflow → @xyflow/react로 패키지 변경
• 노드 측정 속성 변경: node.width / node.height (기존 방식) → 이제는 node.measured.width / node.measured.height로 측정값 제공
• width / height는 이제 CSS 인라인 스타일로 동작하게 됩니다.
• 서버 사이드 렌더링, 컴퓨팅 훅 등 새로운 기능을 활용하려면 필수 마이그레이션이 필요합니다.

⸻

요약 (블로그 작성용)

항목 요약
패키지 변경 reactflow → @xyflow/react
통합 구조 React Flow + Svelte Flow 함께 관리하는 모노레포 구조
주요 기능 SSR, 컴퓨팅 훅, 다크 모드, TSDoc, 성능 개선 등
API 변경점 노드 측정값은 node.measured.*, 스타일 적용 방식 변경 등
개발자 경험 강화 IDE 내 설명 강화, hooks/viewport/controller 기능 강화

'Development > React' 카테고리의 다른 글

[React] ReactQuery 순환 참조  (1) 2025.06.09
[React] React에서 key 중복으로 발생한 렌더링 이슈 (Reconciliation 사례)  (1) 2025.05.27
[React] useId()를 사용하다가 삽질한 기록  (4) 2025.05.25
[TypeScript] 고급 타입 활용법: 조건부 타입, 제네릭 심화와 Exclude/Extract 활용  (0) 2025.04.01
[React] 상태 (State)  (0) 2024.02.28
'Development/React' 카테고리의 다른 글
  • [React] ReactQuery 순환 참조
  • [React] React에서 key 중복으로 발생한 렌더링 이슈 (Reconciliation 사례)
  • [React] useId()를 사용하다가 삽질한 기록
  • [TypeScript] 고급 타입 활용법: 조건부 타입, 제네릭 심화와 Exclude/Extract 활용
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (185)
      • Development (170)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (9)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    리눅스
    Shell
    Java
    date
    docker
    CentOS
    Selenium
    php
    CentOS7
    MySQL
    리액트
    chromedriver
    JavaScript
    ssh
    db
    error
    스프링부트
    정규표현식
    nodejs
    IP
    react
    인코딩
    UTF8
    Python
    윈도우
    HTML
    Linux
    SQL
    크롤링
    springboot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[ReactFlow] 이제 reactflow 대신 @xyflow/react
상단으로

티스토리툴바