Trình chuyển đổi HTML sang JSX
Chuyển đổi mã HTML thông thường thành cú pháp JSX cho React.
Giới thiệu
Công cụ hữu ích dành cho nhà phát triển giúp rút ngắn khoảng cách giữa thiết kế HTML truyền thống và các framework JavaScript hiện đại. Cho phép bạn chuyển đổi nhanh chóng mã HTML hoặc SVG chuẩn sang cú pháp React (JSX) hoàn toàn hợp lệ ngay trên trình duyệt.
Chúng tôi ưu tiên bảo mật dự án của bạn. Ứng dụng này chạy hoàn toàn trên máy cục bộ của bạn bằng thuật toán Regex ở phía Client. Do đó, bạn có thể yên tâm dán các template nội bộ của công ty hoặc thiết kế UI chưa ra mắt mà không gặp rủi ro gì, vì mã không bao giờ bị gửi lên mạng.
Cách sử dụng
- Dán Mã Nguồn: Dán bất kỳ đoạn mã HTML thông thường nào trực tiếp vào khung "Input" bên trái.
- Chuyển đổi tức thì: Hệ thống sẽ tự động nhận diện cú pháp khi bạn nhập và đồng thời biên dịch sang JSX hợp lệ ở bên phải.
- Sao chép và Sử dụng: Kiểm tra lại định dạng kết quả, bấm nút "Sao chép" và dán trực tiếp vào file `.js`, `.jsx` hoặc `.tsx` của dự án framework React.
Các quy tắc chuyển đổi tự động chính
- Thuộc tính
class=" "tự động chuyển thànhclassName=" ". - Thuộc tính
for=" "tự động chuyển thành thuộc tính DOMhtmlFor=" ". - Các thẻ tự đóng (void elements) như
<br>,<hr>,<img>, và<input>tự động được thêm dấu gạch chéo/>ở cuối để tránh lỗi biên dịch nghiêm ngặt của React. - Cú pháp Inline Styles dạng chuỗi (ví dụ:
style="font-size: 10px;") được phân tích và chuyển thành object JS với kiểu viết camelCasestyle={{fontSize: '10px'}}. - Các sự kiện phổ biến (như
onclick) được chuyển thành sự kiện synthetic camelCase của React (nhưonClick).
Thuật ngữ
- JSX (JavaScript XML)
- Cú pháp mở rộng của JavaScript dùng trong React và Next.js. Nó cho phép bạn viết UI giống như HTML, nhưng một số tên thuộc tính sẽ khác — ví dụ,
classphải đổi thànhclassName. - className
- Thuộc tính JSX dùng thay cho
classcủa HTML. Việc đổi tên này giúp tránh trùng lặp với từ khóaclassđã được JavaScript xí chỗ. - htmlFor
- Thuộc tính JSX thay thế cho
forcủa HTML trong thẻ<label>. Đổi tên để tránh xung đột với vòng lặpforcủa JS. - Self-Closing Tags (Thẻ tự đóng)
- Trong JSX, các thẻ rỗng (không chứa nội dung) như
<img>,<br>, và<input>bắt buộc phải đóng rõ ràng bằng dấu gạch chéo:<img />. Trong HTML thì tuỳ chọn, nhưng JSX thì bắt buộc. - Inline Styles
- Trong JSX, thuộc tính
stylephải nhận vào một JavaScript object thay vì một chuỗi CSS. Tên thuộc tính CSS cũng phải viết theo kiểu camelCase:style={{color: "red", fontSize: "16px"}}. - React Component
- Một hàm hoặc lớp tái sử dụng trả về JSX. Component là các khối xây dựng cơ bản của một ứng dụng React, mỗi khối chịu trách nhiệm render một phần UI cụ thể.
FAQ
- Q.Mã của tôi có bị gửi lên máy chủ không?
- Không. Toàn bộ quá trình chuyển đổi HTML sang JSX chạy hoàn toàn bên trong trình duyệt của bạn. Đoạn code bạn dán không bao giờ bị gửi ra ngoài.
- Q.Công cụ tự động chuyển đổi những gì?
- Tự động đổi class → className, for → htmlFor, chuỗi style inline → object notation, tự đóng các thẻ rỗng, và giữ nguyên các thuộc tính data-* — tất cả đều tuân thủ chuẩn JSX của React.
- Q.Tôi có thể dùng kết quả này cho TypeScript (TSX) không?
- Có, mã JSX tạo ra thường cũng là TSX hợp lệ. Bạn chỉ cần tự thêm các khai báo kiểu (type annotations) của TypeScript sau đó.
- Q.Công cụ có xử lý được HTML phức tạp như bảng và biểu mẫu không?
- Có, hỗ trợ cả cấu trúc phức tạp như table, form, và SVG. Lưu ý là các cú pháp template (như EJS, Pug) cần được compile ra HTML thuần trước khi dán vào.
- Q.Làm sao để copy kết quả?
- Nhấn nút "Sao chép" ở phía trên khung JSX. Mã chuyển đổi sẽ được lưu vào clipboard, sẵn sàng dán vào file .jsx hoặc .tsx của bạn.
- Q.Các thuộc tính SVG có được chuyển đổi không?
- Chưa hỗ trợ toàn diện SVG nhưng các sự kiện phổ biến và thuộc tính tiêu chuẩn đều hoạt động. Một số thuộc tính SVG đặc thù (như stroke-width) có thể cần kiểm tra lại, nhưng cấu trúc thẻ được giữ nguyên.
- Q.Có dùng được trên điện thoại không?
- Có. Giao diện hoàn toàn responsive. Bạn có thể dán HTML, xem và copy JSX từ bất kỳ trình duyệt di động hiện đại nào.
Ứng dụng
- Import Mockup từ Designer: Nhanh chóng chuyển đổi các khối HTML thuần túy được bàn giao từ Web Designer thành các component React có thể tái sử dụng ngay lập tức.
- Di cư dự án cũ (Legacy): Khi chuyển đổi từ kiến trúc jQuery sang các framework hiện đại như Vue/React, công cụ giúp dễ dàng tái cấu trúc mã DOM cơ bản.
- Sao chép từ UI Kits: Chuyển đổi trực tiếp các khối thiết kế tiêu chuẩn từ các trang như Bootstrap thuần hoặc component Tailwind vào ứng dụng Next.js của bạn một cách dễ dàng và không bị lỗi.
Gửi phản hồi
Vui lòng cho chúng tôi biết suy nghĩ của bạn để giúp chúng tôi cải thiện công cụ.
Feedback is temporarily suspended
The server is busy or spam protection is active. Please try again later.