vue3 js コンポーネント: コンポーネントが更新されていません
P粉779565855
P粉779565855 2024-02-25 14:50:02
0
2
444

API からデータを収集するコンポーネントがあります。 API から返されるデータは、詳細を含む配列です。配列内の値の 1 つはレンダリングされるコンポーネントのタイプであり、他のすべてのデータはコンポーネントに渡されます。 データベースから返された値に基づいて正しいコンポーネントをレンダリングしようとしていますが、残念ながら機能しません。 私は Vue を初めて使用しますが、vue2 では動作しますが、コンポジション API を使用して Vue 3 で動作することを願っています。

これは、置き換えたいコンポーネント コードです:

リーリー

ブラウザで表示すると、実際には次のように表示されますが、SelectInput コンポーネントを使用しません:

リーリー

SelectInput はディレクトリのコンポーネントであり、:is 値をハードコードすると、次のように期待どおりに機能します。 リーリー

私の完全なコンポーネントは

component コンポーネントを呼び出し、コンポーネントを交換します: ああああ

P粉779565855
P粉779565855

全員に返信(2)
P粉388945432

コンポーネントのファイル名が問題のオブジェクトの型指定子と等しい場合は、それらを動的にインポートしてコード行を節約できます。

これにより、より多くの型を作成すると、このコンポーネントに触れる必要がなくなるため、スケーラビリティの向上にもつながります。



いいねを押す +0
P粉775788723

スクリプト設定 を使用していたため、コンポーネントに名前が付けられていなかったため、 コンポーネント コンポーネントはどのコンポーネントをレンダリングするかを認識できませんでした。

そこで、コンポーネントとコンポーネントへの参照を含むオブジェクトを作成します。

const コンポーネント = {
        'SelectInput': 選択入力、
        'TextareaInput': テキストエリア入力
    };

表示したいコンポーネントを取得し、それを実際のコンポーネントにリンクする別の関数:

const コンポーネントタイプ = (タイプ) => コンポーネント[タイプ];

次に、テンプレート内で関数を呼び出し、正しいコンポーネントをレンダリングします。

完全な修正コード:



これが正しいアプローチであるかどうかはよくわかりませんが、正しいコンポーネントがレンダリングされるようになりました。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート