UTILS.
100% ब्राउज़र में

HTML से JSX / React

एक HTML snippet को React के लिए मान्य JSX में बदलें — attributes का नाम बदलते हुए, self-closing void tags, और inline styles को style objects में बदलते हुए।

— आउटपुट यहाँ दिखेगा —

इस टूल के बारे में

HTML से JSX / React कन्वर्टर एक HTML snippet को ब्राउज़र के native DOMParser से पार्स करता है और इसे मान्य JSX के रूप में फिर से serialize करता है, वह सब कुछ ठीक करते हुए जो React को चाहिए। यह पूरी तरह से client-side चलता है, इसलिए आप जो markup पेस्ट करते हैं वह आपकी मशीन पर रहता है। कोई भी HTML पेस्ट करें — एक design export, एक email template, एक component sketch — और JSX पाएँ जिसे आप सीधे एक React फ़ाइल में डाल सकते हैं।

यह rewrite reserved attributes का नाम बदलता है (class बन जाता है className, for बन जाता है htmlFor), बाकी को camelCase करता है — tabindex को tabIndex, maxlength को maxLength, stroke-width को strokeWidth — जबकि data-* और aria-* attributes को अछूता छोड़ता है। img, br, input, और hr जैसे void elements को self-closing (<img />) बनाया जाता है, HTML comments {/* ... */} बन जाते हैं, text में literal braces को {'{'} के रूप में escape किया जाता है, और एक inline style="a:b;c:d" string को camelCased CSS keys वाले एक style={{ a: 'b', c: 'd' }} object में बदला जाता है। disabled जैसे Boolean attributes को एक toggle के साथ bare या ={true} के रूप में निकाला जा सकता है।

fragment आउटपुट चुनें — कई root nodes को स्वतः एक <>...</> fragment में लपेटा जाता है — या full-component आउटपुट, जो JSX को आपके चुने हुए नाम और indentation (2 spaces, 4 spaces, या tabs) वाले एक export default function में लपेटता है। परिणाम पेस्ट करने के लिए तैयार है; क्योंकि parse एक वास्तविक DOM का उपयोग करता है, विकृत nesting को उसी तरह सामान्यीकृत किया जाता है जैसे एक ब्राउज़र करेगा।

अक्सर पूछे जाने वाले प्रश्न

कौन से attributes का नाम बदला जाता है?
class बन जाता है className और for बन जाता है htmlFor; अन्य hyphenated या reserved attributes camelCased होते हैं (tabindex को tabIndex, maxlength को maxLength, stroke-width को strokeWidth)। data-* और aria-* attributes जैसे लिखे हैं वैसे ही संरक्षित रहते हैं।
inline styles को कैसे संभाला जाता है?
एक style="color:red;font-size:14px" string style={{ color: 'red', fontSize: '14px' }} बन जाती है — प्रत्येक CSS property camelCased होती है और हर मान एक string के रूप में निकाला जाता है, जो React inline styles के लिए हमेशा मान्य है।
कई root elements के साथ क्या होता है?
JSX को एक अकेला root चाहिए, इसलिए जब आपके snippet में कई top-level nodes हों तो उन्हें एक Fragment (<>...</>) में लपेटा जाता है। Full-component mode इसके बजाय उन्हें एक returned parenthesized expression के अंदर लपेटता है।
क्या यह comments और void tags को बदलता है?
हाँ। HTML comments JSX comments {/* ... */} बन जाते हैं, और void elements (img, br, input, hr, meta, link, और बाकी) <img /> के रूप में self-closing रेंडर होते हैं, जो JSX को चाहिए।

और टूल