Konverter SVG ke Komponen React JSX
Memandu
Konverter SVG ke Komponen React JSX
Tempel markup SVG mentah dan dapatkan kembali komponen fungsi React yang bersih. Alat ini menerapkan konversi camelCase yang deterministik untuk setiap atribut, menghilangkan sintaks non-JSX, dan mengelompokkan hasilnya dalam komponen siap diimpor — opsional terjenis, opsional forwardRef-dilindungi, dan opsional diubah ukuran melalui properti. Semua hal berjalan secara lokal di browser Anda, sehingga ikon dan logo Anda tidak pernah meninggalkan mesin Anda.
Cara Penggunaan
- Tempel
<svg>…</svg>markup ke kotak masukan. - Tetapkan nama komponen (PascalCase, seperti
ArrowRightIcon). - Toggle TypeScript,
forwardRef, properti ukuran skala, dan penyebaran properti untuk sesuai dengan proyek Anda. - Salin JSX yang dihasilkan atau unduh sebagai
.tsx/.jsxfile.
Fitur
- atribut camelCase –
stroke-widthmenjadistrokeWidth,fill-rulemenjadifillRule, dan seterusnya di seluruh spesifikasi SVG. - Pengelolaan kata kunci yang disimpan –
classditerjemahkan menjadiclassName,forkehtmlFordanxlink:hrefkexlinkHref. - Parsa gaya inline –
style="color: red; font-size: 12px"dikonversi menjadi objek gaya JSX dengan kunci camelCase. - Output TypeScript – menghasilkan
React.SVGProps<SVGSVGElement>tipe saat diaktifkan. - Mode ikon skala – ganti dimensi hard-coded width/height dengan
widthdanheightproperti dengan nilai default yang masuk akal. - Wrapper React.forwardRef – menghasilkan sebuah
React.forwardRefkomponen dengan sebuahdisplayNameuntuk DevTools. - Penyebaran properti – menyalurkan properti sembarang ke akar
<svg>sehingga konsumen dapat menetapkanclassName, ARIA, atau penanggulang peristiwa. - Offline secara dirancang – SVG tidak pernah meninggalkan browser; tidak ada pengunggahan, tidak ada perjalanan ke server.
Tanya Jawab Umum
-
Mengapa React dan JSX mengubah nama atribut SVG?
JSX dikompilasi langsung ke akses properti objek JavaScript, dan identifikasi JavaScript tidak dapat mengandung garis bawah. Oleh karena itu, React menggunakan nama properti camelCase yang standar yang mencerminkan DOM IDL — misalnya,
stroke-widthmenjadistrokeWidthkarena DOM mengungkapkannya sebagaielement.strokeWidth. Sejumlah kecil atribut (class,for) bertabrakan dengan kata kunci JavaScript dan diubah (className,htmlFor) untuk menghindari konflik parser. -
Apa yang dilakukan oleh React.forwardRef terhadap komponen SVG?
Secara default, komponen fungsional tidak dapat menerima sebuah
refdari orang tua — React mengabaikannya secara diam-diam.React.forwardRefmengungkapkan node DOM bawah ke orang tua, yang penting ketika Anda membutuhkan akses langsung ke elemen yang dihasilkan<svg>untuk manajemen fokus, pengukuran, atau integrasi dengan library animasi seperti Framer Motion atau GSAP. -
Mengapa SVG harus dimasukkan sebagai komponen React daripada gambar inline?
Memasukkan SVG sebagai JSX memberi Anda kendali penuh atas pohon DOM: Anda dapat mengatur stroke dan fill melalui variabel CSS, menganimasikan jalur secara individual, mengganti warna secara dinamis, dan menghapus ikon yang tidak digunakan saat build. Sebuah
<img src="icon.svg">berperilaku sebagai elemen raster yang tidak transparan — Anda tidak dapat mengatur bagian dalamnya dari halaman host. -
Mengapa tetapkan width dan height sebagai properti daripada atribut yang diatur secara keras?
Dimensi piksel yang diatur secara keras membatasi ukuran ikon pada satu ukuran dan membuatnya tidak nyaman untuk digunakan dalam komposisi layout. Menyediakan
widthdanheightsebagai properti (sering kali dikombinasikan dengan nilai asliviewBox) memungkinkan pengguna merender komponen yang sama pada 16px di toolbar dan 48px di banner utama, dengan skala vektor SVG yang mempertahankan kejernihan pada setiap ukuran.
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru ditambahkan pada 30 Apr 2026
