Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memberikan Nama Komponen Dinamik dalam React dan JSX?

Bagaimana untuk Memberikan Nama Komponen Dinamik dalam React dan JSX?

Barbara Streisand
Lepaskan: 2024-11-17 13:52:02
asal
305 orang telah melayarinya

How to Render Dynamic Component Names in React and JSX?

Nama Komponen Dinamik dalam React dan JSX

Dalam React, pemaparan komponen dinamik membolehkan anda mencipta komponen berdasarkan jenisnya semasa masa jalan. Untuk menggambarkan ini, pertimbangkan contoh berikut:

var type = "Example";
var ComponentName = type + "Component";
return <ComponentName />; // Returns <examplecomponent /> instead of <ExampleComponent />
Salin selepas log masuk

Penyelesaian terdahulu, yang dicadangkan dalam urutan nama komponen dinamik React/JSX, mengakibatkan ralat penyusunan disebabkan oleh perbezaan sintaks. Sebagai alternatif, kaedah berasingan boleh dibuat untuk setiap komponen:

newExampleComponent() {
    return <ExampleComponent />;
}

newComponent(type) {
    return this["new" + type + "Component"]();
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini memerlukan kaedah baharu untuk setiap komponen, yang boleh menyusahkan.

Nasib baik, terdapat penyelesaian yang lebih elegan yang melibatkan penghantaran jenis komponen sebagai rentetan kepada fungsi React.createElement(). Fungsi ini menjadikan komponen menggunakan jenis yang disediakan. Contohnya:

var MyComponent = Components[type + "Component"];
return <MyComponent />;
Salin selepas log masuk

Kod ini disusun kepada:

var MyComponent = Components[type + "Component"];
return React.createElement(MyComponent, {});
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memberikan Nama Komponen Dinamik dalam React dan JSX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan