LGraphCanvas.prototype.getCanvasMenuOptions와 nodeType.prototype.getExtraMenuOptions를 몽키 패칭하는 기존 방식은 더 이상 사용되지 않습니다:
캔버스 메뉴 마이그레이션
기존 방식 (사용 중단)
기존 방식은 확장 프로그램 설정 시 프로토타입을 수정했습니다:새 방식 (권장)
새 방식은 전용 확장 프로그램 훅을 사용합니다:주요 차이점
| 기존 방식 | 새 방식 |
|---|---|
| setup()에서 수정 | getCanvasMenuItems() 훅 사용 |
| 기존 함수를 래핑 | 메뉴 항목을 직접 반환 |
| options 배열을 수정 | 새로운 배열 반환 |
| 캔버스는 this를 통해 접근 | 캔버스는 매개변수로 전달 |
노드 메뉴 마이그레이션
기존 방식 (사용 중단)
기존 방식은 노드 유형 프로토타입을 수정했습니다:새 방식 (권장)
새 방식은 전용 확장 프로그램 훅을 사용합니다:주요 차이점
| 기존 방식 | 새 방식 |
|---|---|
| beforeRegisterNodeDef()에서 수정 | getNodeMenuItems() 훅 사용 |
| 타입별 조건부 처리 (if 문) | 훅 내 조건부 처리 |
| options 배열을 수정 | 새로운 배열 반환 |
| 노드는 this를 통해 접근 | 노드는 매개변수로 전달 |
공통 패턴
조건부 메뉴 항목
두 방식 모두 조건부 항목을 지원하지만, 새 API가 더 깔끔합니다:구분선 추가
구분선은 두 방식 모두 동일하게 추가됩니다:하위 메뉴 생성
하위 메뉴를 생성하는 권장 방법은 선언적submenu 속성을 사용하는 것입니다:
상태 접근
문제 해결
기존 API 사용 여부 확인 방법
코드에서 다음과 같은 패턴을 찾아보세요:Deprecation 경고 이해하기
콘솔에 다음과 같은 경고가 표시된다면:마이그레이션 성공 확인
마이그레이션 후:- setup() 및 beforeRegisterNodeDef()에서 모든 프로토타입 수정 제거
- getCanvasMenuItems() 및/또는 getNodeMenuItems() 훅 추가
- 메뉴 항목이 여전히 올바르게 표시되는지 테스트
- 콘솔에 Deprecation 경고가 나타나지 않는지 확인
완전한 마이그레이션 예제
이전:추가 자료
- 주석이 달린 예제 - 새 API를 사용한 더 많은 예제
- 확장 프로그램 훅 - 사용 가능한 확장 프로그램 훅의 전체 목록
- 명령어 및 키바인딩 - 메뉴 액션에 키보드 단축키 추가