Convertir SVG en Composant React

Transformez le balisage SVG en composants React prêts pour la production avec conversion automatique des attributs JSX.

Convertissez du code SVG brut en composants React propres instantanément. Transforme automatiquement les attributs SVG en syntaxe camelCase JSX, convertit les styles en ligne en notation objet, prend en charge TypeScript avec des props typés, l'enveloppe React.memo, forwardRef et des styles d'exportation configurables. Tout le traitement s'exécute localement dans votre navigateur pour une confidentialité et une vitesse maximales.

Loading...
Vos données restent dans votre navigateur
Cet outil vous a-t-il été utile ?
Tutoriel

Comment Utiliser

1
1

Collez Votre SVG

Copiez le code SVG depuis votre outil de conception ou bibliothèque d'icônes et collez-le dans la zone de texte d'entrée.

2
2

Configurez les Options

Définissez le nom du composant, choisissez TypeScript ou JavaScript, et activez memo, forwardRef ou le style d'export selon vos besoins.

3
3

Convertissez et Copiez

Cliquez sur Convertir pour générer le composant React. Copiez le code de sortie directement dans les fichiers source de votre projet.

Guide

Guide Complet du SVG dans React

Pourquoi Convertir SVG en Composants React

Utiliser SVG comme composants React vous donne un contrôle total sur le style, les animations et l'interactivité via les props. Contrairement aux balises image ou aux arrière-plans CSS, les composants SVG en ligne peuvent répondre aux changements d'état, accepter des couleurs dynamiques via les props et participer au cycle de vie du composant React. Cette approche permet également le tree-shaking ; les icônes inutilisées sont automatiquement exclues des bundles de production par les bundlers modernes comme Webpack et Vite.

Comprendre les Différences d'Attributs JSX

React utilise le camelCase pour les attributs DOM au lieu de la convention kebab-case du HTML. SVG a de nombreux attributs avec tirets comme stroke-width, fill-opacity et clip-rule qui doivent devenir strokeWidth, fillOpacity et clipRule en JSX. L'attribut class devient className, et les chaînes de style en ligne doivent être converties en objets JavaScript avec des noms de propriétés en camelCase et des valeurs de chaîne ou numériques.

TypeScript et SVG Props

Utiliser SVGProps<SVGSVGElement> des définitions de types de React donne à votre composant une sécurité de types complète pour tous les attributs SVG valides. Cela signifie que les consommateurs obtiennent l'autocomplétion pour les propriétés comme viewBox, fill, stroke, opacity et tous les attributs de présentation. Combiné avec votre propre interface de props personnalisés, TypeScript détecte les fautes de frappe d'attributs et les valeurs invalides à la compilation plutôt qu'à l'exécution.

Optimisation des Performances avec memo et forwardRef

Envelopper les composants d'icônes avec React.memo empêche les re-rendus inutiles lorsque les composants parents se mettent à jour mais que les props de l'icône restent inchangés. Cela est particulièrement bénéfique dans les vues de liste avec de nombreuses icônes. L'enveloppe forwardRef permet aux composants parents d'accéder directement au nœud DOM SVG pour les mesures, les observateurs d'intersection ou les animations impératives sans casser l'abstraction du composant.

Examples

Exemples Résolus

Exemple : Conversion d'Icône Simple

Donné : Une icône SVG basique de cercle avec des attributs de trait.

1

Étape 1 : Coller <svg viewBox="0 0 24 24" fill="none" stroke-width="2"><circle cx="12" cy="12" r="10" /></svg> dans l'entrée.

2

Étape 2 : Définir le nom du composant comme CircleIcon et activer TypeScript.

3

Étape 3 : Cliquer sur Convertir en React.

Résultat : Un composant React typé avec strokeWidth converti en camelCase et SVGProps propagés sur l'élément racine.

Exemple : Path Complexe avec Styles

Donné : Un élément path SVG avec des styles en ligne et de multiples attributs en kebab-case.

1

Étape 1 : Coller SVG avec style="fill:red;stroke-width:2" et des attributs comme fill-rule et clip-path.

2

Étape 2 : Activer les options memo et forwardRef.

3

Étape 3 : Cliquer sur Convertir et observer l'objet de style et les conversions camelCase.

Résultat : Un composant enveloppé dans memo avec forwardRef avec style={{ fill: 'red', strokeWidth: 2 }} et des attributs en camelCase.

Cas d'utilisation

Cas d'Utilisation

Création de Bibliothèque d'Icônes

Convertissez une collection d'icônes SVG depuis des outils de conception comme Figma ou Sketch en composants React typés. Chaque icône devient un composant réutilisable avec support SVGProps, permettant un style cohérent via des props comme className, fill et stroke dans toute votre application.

Intégration au Système de Design

Transformez des illustrations et graphiques SVG en composants React correctement typés pour votre système de design. L'utilisation des options forwardRef et memo garantit que ces composants s'intègrent harmonieusement avec les bibliothèques d'animation, les déclencheurs de tooltips et d'autres patrons dépendant des refs tout en optimisant les performances de rendu.

Migration de SVG Hérité

Migrez des éléments SVG en ligne de modèles HTML hérités vers des bases de code React modernes. Le convertisseur gère toutes les transformations d'attributs automatiquement ; convertissant class en className, kebab-case en camelCase et les chaînes de style en ligne en objets JavaScript, économisant des heures de conversion manuelle fastidieuse.

Questions Fréquemment Posées

?Quels attributs SVG sont convertis ?

Tous les attributs SVG courants sont convertis en leurs équivalents JSX React. Cela inclut stroke-width en strokeWidth, fill-rule en fillRule, clip-path en clipPath et class en className.

?Gère-t-il les styles en ligne ?

Oui. Les chaînes de style en ligne comme style="fill:red;stroke-width:2" sont converties en objets de style React avec des propriétés en camelCase et des valeurs correctement typées.

?Que fait l'option forwardRef ?

Elle enveloppe le composant avec React.forwardRef, permettant aux composants parents d'accéder à l'élément DOM SVG sous-jacent via des refs pour les animations, mesures ou gestion du focus.

?Pourquoi supprimer xmlns ?

L'attribut xmlns est requis pour les fichiers SVG autonomes mais inutile en JSX car React gère l'espace de noms automatiquement. Le supprimer garde vos composants plus propres.

?Puis-je utiliser la sortie dans Next.js ?

Oui. Les composants générés fonctionnent dans n'importe quel framework React incluant Next.js, Remix et Gatsby. Pour les composants serveur, assurez-vous d'ajouter la directive 'use client' si nécessaire.

?Mes données sont-elles privées avec cet outil ?

Absolument. Toute la conversion SVG se fait entièrement dans votre navigateur en JavaScript. Aucun code n'est envoyé à un serveur, garantissant que vos designs et code source restent complètement privés.

?Cet outil est-il gratuit ?

Oui. Ce convertisseur SVG vers React est entièrement gratuit sans limites d'utilisation, sans inscription requise et sans restrictions sur le code du composant généré.

?L'attribut viewBox est-il préservé ?

Oui. L'attribut viewBox est préservé exactement tel que fourni dans le SVG source. Il propage également des props supplémentaires sur l'élément SVG racine pour la personnalisation en temps d'exécution.

Aidez-nous à améliorer

Aimez-vous cet outil ?

Chaque outil Kitmul est construit à partir de vraies demandes d'utilisateurs. Votre note et vos suggestions nous aident à corriger des bugs, ajouter des fonctionnalités manquantes et créer les outils dont vous avez vraiment besoin.

Notez cet outil

Cliquez sur une étoile pour nous dire si cet outil vous a été utile.

Suggérez une amélioration ou signalez un bug

Une fonctionnalité manque ? Vous avez trouvé un bug ? Une idée ? Dites-le-nous et nous l'examinerons.

Outils associés

Lectures Recommandées

Livres Recommandés sur React, SVG et le Développement Frontend

En tant que partenaire Amazon, nous percevons une commission sur les achats qualifiés.

Boostez vos Compétences

Produits Professionnels pour Développeurs Frontend

En tant que partenaire Amazon, nous percevons une commission sur les achats qualifiés.

Newsletter

Recevez des Conseils Productivité et les Nouveaux Outils en Premier

Rejoignez les créateurs et développeurs qui valorisent la confidentialité. Chaque édition : nouveaux outils, astuces productivité et mises à jour — sans spam.

Accès prioritaire aux nouveaux outils
Désabonnez-vous à tout moment, sans questions