LGraphCanvas.prototype.getCanvasMenuOptions および nodeType.prototype.getExtraMenuOptions をモンキーパッチする従来のアプローチは非推奨となりました:
キャンバスメニューの移行
従来のアプローチ(非推奨)
従来のアプローチでは、拡張機能のセットアップ中にプロトタイプを変更していました:新しいアプローチ(推奨)
新しいアプローチでは、専用の拡張フックを使用します:主な違い
| 従来のアプローチ | 新しいアプローチ |
|---|---|
setup() 内で変更 | getCanvasMenuItems() フックを使用 |
| 既存の関数をラップ | メニュー項目を直接返す |
options 配列を変更 | 新しい配列を返す |
this 経由でキャンバスにアクセス | キャンバスがパラメータとして渡される |
ノードメニューの移行
従来のアプローチ(非推奨)
従来のアプローチでは、ノードタイプのプロトタイプを変更していました:新しいアプローチ(推奨)
新しいアプローチでは、専用の拡張フックを使用します:主な違い
| 従来のアプローチ | 新しいアプローチ |
|---|---|
beforeRegisterNodeDef() 内で変更 | getNodeMenuItems() フックを使用 |
if チェックでタイプを指定 | フック内の if チェックでタイプを指定 |
options 配列を変更 | 新しい配列を返す |
this 経由でノードにアクセス | ノードがパラメータとして渡される |
一般的なパターン
条件付きメニュー項目
どちらのアプローチも条件付き項目をサポートしますが、新しい API の方が簡潔です:セパレーターの追加
セパレーターの追加方法は、どちらのアプローチでも同じです:サブメニューの作成
サブメニューを作成する推奨方法は、宣言的なsubmenu プロパティを使用することです:
状態へのアクセス
トラブルシューティング
旧 API の使用箇所を特定する方法
コード内で以下のパターンを探してください:非推奨警告の理解
コンソールに以下の警告が表示された場合:移行成功の確認
移行後:setup()およびbeforeRegisterNodeDef()からすべてのプロトタイプ変更を削除getCanvasMenuItems()および/またはgetNodeMenuItems()フックを追加- メニュー項目が正しく表示されることをテスト
- コンソールに非推奨警告が表示されないことを確認
移行の完全な例
移行前:追加リソース
- 注釈付きの例 - 新しい API を使用したさらに多くの例
- 拡張フック - 利用可能な拡張フックの完全なリスト
- コマンドとキーバインド - メニューアクションにキーボードショートカットを追加