Konwertuj HTML na JSX React Online
Przekształcaj HTML w prawidłowy JSX dla React i Next.js. Bezpłatnie, w Twojej przeglądarce, bez przesyłania plików.
Dlaczego warto użyć tego konwertera
HTML do JSX bez błędów składniowych
Pełna prywatność
Konwersja odbywa się całkowicie w Twojej przeglądarce przy użyciu czystego JavaScript. Twój kod nigdy nie opuszcza Twojego urządzenia.
Kompletne przekształcenia
Stosujemy wszystkie niezbędne konwersje: atrybuty, style, zdarzenia, tagi void i komentarze. Bez ręcznych kroków.
Kompatybilny z React i Next.js
Wynikowy JSX jest prawidłowy dla React 16+, Next.js 12+ i każdego frameworka opartego na React, jak Gatsby lub Remix.
Natychmiastowy
Konwersja odbywa się w milisekundach bez wywołań serwera. Wklej i skopiuj, bez czekania.
Jak to działa
Trzy kroki, żadnych komplikacji
Wklej swój HTML
Wklej kod HTML, który chcesz przekonwertować, w pole wejściowe. Może to być pełny dokument HTML lub fragmenty.
Automatyczna konwersja
Konwerter stosuje wszystkie niezbędne przekształcenia: class→className, for→htmlFor, style inline do obiektu JS i samozamykające tagi void.
Skopiuj wynikowy JSX
Skopiuj gotowy JSX bezpośrednio do swoich komponentów React lub Next.js.
FAQ
Masz pytania?
Główne przekształcenia to: class→className (class jest słowem zarezerwowanym w JS), for→htmlFor (for też jest zarezerwowane), style inline konwertowany z ciągu znaków CSS do obiektu JavaScript z właściwościami w camelCase, tagi void samozamykające (<br>→<br />, <img>→<img />, <input>→<input />) i komentarze HTML konwertowane do komentarzy JSX {/* */}.
React i Next.js wymagają JSX, ponieważ komponenty są pisane w JavaScript. JSX to lukier syntaktyczny nad React.createElement(). Po skompilowaniu przez Babel lub kompilator Next.js każdy tag JSX jest konwertowany do wywołań funkcji JavaScript, co uniemożliwia użycie zarezerwowanych słów JS jak class lub for jako atrybutów.
W HTML: style="color: red; font-size: 16px". W JSX: style={{ color: 'red', fontSize: '16px' }}. Właściwości CSS w notacji kebab-case są konwertowane do camelCase (font-size→fontSize, background-color→backgroundColor), a wartości są konwertowane do ciągów znaków lub liczb JavaScript.
Handlery zdarzeń w HTML używają małych liter (onclick, onchange, onsubmit). W JSX są konwertowane do camelCase: onclick→onClick, onchange→onChange, onsubmit→onSubmit, onmouseover→onMouseOver. Wartość zmienia się z ciągu kodu JS na referencję do funkcji: onclick="myFunction()"→onClick={myFunction}.
Elementy void w HTML to tagi bez zawartości ani tagu zamykającego: <br>, <img>, <input>, <hr>, <meta>, <link>. W JSX XML wymaga, aby wszystkie elementy były jawnie zamknięte, dlatego muszą być zapisywane jako <br />, <img /> itd. Bez samozamknięcia kompilator JSX zgłosi błąd składniowy.
Historia React JSX (Facebook 2013), różnice między HTML a JSX, migracja z szablonów HTML do komponentów React, przepływ pracy w Next.js
JSX (JavaScript XML) został wprowadzony przez Facebook w 2013 roku wraz z React jako rozszerzenie składni JavaScript umożliwiające pisanie struktur podobnych do HTML bezpośrednio w kodzie JS. Choć React można opcjonalnie używać bez JSX za pomocą bezpośrednich wywołań React.createElement(), JSX szybko stał się de facto standardem, ponieważ dramatycznie poprawia czytelność kodu komponentów. Babel, a później kompilator SWC z Next.js, przekształca JSX w zwykły JavaScript podczas procesu budowania.
Różnice między HTML a JSX wynikają z działania JSX w kontekście JavaScript. Najważniejsza: class jest słowem zarezerwowanym w JavaScript (do definiowania klas ES6), więc React wybrał className jako równoważny atrybut. Podobnie for jest słowem zarezerwowanym (dla pętli for), dlatego atrybut elementu <label> jest zapisywany jako htmlFor. Style inline wymagają obiektu JavaScript zamiast ciągu znaków CSS, ponieważ jest to bezpieczniejsze w kontekście JS i umożliwia interpolację zmiennych. Właściwości CSS są zapisywane w camelCase, ponieważ myślnik (-) jest operatorem odejmowania w JavaScript.
Migracja statycznych szablonów HTML do komponentów React jest częstym przypadkiem użycia: projektanci lub programiści pracujący z czystym HTML muszą integrować swoje projekty z projektami Next.js lub Create React App. Ręczny proces jest żmudny i podatny na błędy, szczególnie w przypadku złożonego HTML zawierającego wiele atrybutów stylu, handlerów zdarzeń i elementów void. Zautomatyzowane narzędzia do konwersji HTML do JSX znacznie przyspieszają ten proces migracji w projektach dowolnej skali.