最近vue3で書いたもので、機能は実現できることが多いのですが、ブラウザの警告が多く、強迫性障害の人にとっては非常に不快なようです。。。
警告の 1 つは次のとおりです。
[Vue warn]: 無関係な非発行イベント リスナー (queryList、closeDialog) がコンポーネントに渡されましたが、コンポーネントがフラグメントまたはテキスト ルート ノードをレンダリングするため、自動的に継承できませんでした。リスナーがコンポーネントのカスタム イベント リスナーのみであることを目的としている場合は、「emits」オプションを使用して宣言します。
翻訳は次のとおりです。
追加の非発行イベント リスナー (queryList、closeDialog) はコンポーネントに渡されますが、コンポーネントはフラグメントまたはテキスト ルート ノードをレンダリングするため、自動的に継承することはできません。リスナーがコンポーネントのカスタム イベント リスナーとしてのみ意図されている場合は、「emits」オプションを使用して宣言します。
情報を確認したところ、子コンポーネントが親コンポーネントのメソッドを呼び出す方法が少し異なるためであることがわかりました。
以前はこうでした:
const emit = defineEmits();
emit("queryList");
emit("closeDialog");
改訂:
const emit = defineEmits(["queryList","closeDialog"]);
emit("queryList");
emit("closeDialog");
親コンポーネントのメソッドをdefineEmitsで再度宣言するだけです