- vừa được xem lúc

JSX là gì? Tại sao nó quan trọng trong React?

0 0 8

Người đăng: Thanh Hung

Theo Viblo Asia

Khi bắt đầu học React, bạn sẽ gặp ngay một thứ trông như HTML trong JavaScript. Đó chính là JSX – một cú pháp đặc biệt được thiết kế để mô tả giao diện người dùng trong React.

JSX là gì?

JSX (JavaScript XML) là một cú pháp mở rộng của JavaScript cho phép bạn viết HTML trong JavaScript. Mặc dù không phải là tính năng gốc của JavaScript, nhưng JSX được React sử dụng rộng rãi vì nó giúp mô tả UI một cách dễ đọc và gần gũi với lập trình viên web.

Ví dụ:

const name = "Hung";
const element = <h1>Xin chào, {name}!</h1>;

JSX cho phép bạn chèn biểu thức JavaScript (như biến, hàm, phép toán...) vào bên trong giao diện bằng cách đặt trong dấu {}.

JSX hoạt động như thế nào?

JSX không phải là HTML. Trước khi chạy trên trình duyệt, JSX sẽ được biên dịch thành các lệnh React.createElement.

Ví dụ:

<h1>Hello</h1>

Sẽ được Babel biên dịch thành:

React.createElement('h1', null, 'Hello');

Vì vậy, trình duyệt thực chất không hiểu JSX – bạn luôn cần trình biên dịch (như Babel/Webpack) để sử dụng JSX trong React.

Lợi ích của JSX

  1. Viết UI rõ ràng, dễ đọc
    JSX gần giống HTML nên giúp lập trình viên web cảm thấy quen thuộc.

  2. Tích hợp logic dễ dàng
    Có thể chèn điều kiện, vòng lặp, biến... vào trong JSX một cách trực tiếp.

  3. Gắn liền với component-based architecture
    Mỗi component React thường return JSX để mô tả giao diện riêng của nó.

  4. Tối ưu hiệu năng khi kết hợp với Virtual DOM
    JSX được React xử lý và chuyển thành Virtual DOM, giúp cập nhật giao diện nhanh và hiệu quả.

Một số lưu ý khi dùng JSX

  • Dùng className thay cho class (tránh xung đột với từ khóa class của JavaScript):

    <div className="header">...</div>
    
  • Mọi thẻ phải được đóng đúng cách (kể cả thẻ đơn):

    <img src="..." />
    <input type="text" />
    
  • JSX chỉ trả về một phần tử duy nhất – nên thường dùng div hoặc <>...</> (React Fragment) để bao bọc:

    return ( <> <Header /> <Content /> </>
    );
    

JSX cho phép biểu thức, không phải câu lệnh

Bạn có thể dùng các biểu thức như toán tử ba ngôi, gọi hàm, toán tử logic... trong JSX:

{score > 90 ? "Xuất sắc" : "Cần cố gắng"}

Nhưng không thể dùng lệnh điều kiện if, for trực tiếp trong JSX:

❎️ Sai:

if (score > 90) { return <p>Xuất sắc</p>;
}

✅ Đúng (dùng bên ngoài hoặc chuyển thành biểu thức):

{score > 90 && <p>Xuất sắc</p>}

JSX nâng cao: kết hợp render danh sách

const names = ['May', 'Fest']; <ul> {names.map((name, index) => ( <li key={index}>{name}</li> ))}
</ul>

🔚 Kết luận

JSX là một cú pháp mạnh mẽ giúp viết UI trong React một cách trực quan, ngắn gọn và linh hoạt. Tuy không phải là JavaScript thuần hay HTML thực sự, nhưng JSX giúp bạn kết hợp logic với giao diện một cách tự nhiên, là công cụ cốt lõi để xây dựng component trong React.

Hiểu JSX kỹ sẽ giúp bạn dễ dàng xây dựng các giao diện phức tạp, đọc hiểu code React nhanh hơn và làm việc hiệu quả hơn trong các dự án thực tế.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 5)

V. Sử dụng useRef như thế nào cho đúng.

0 0 149

- vừa được xem lúc

7 Cách viết code React "clean" hơn

Mở đầu. Là nhà phát triển React, tất cả chúng ta đều muốn viết code sạch hơn, đơn giản hơn và dễ đọc hơn. 1. Sử dụng JSX shorthands.

0 0 205

- vừa được xem lúc

Create app covid-19 use Reactjs

Chào các bạn hôm nay mình sẽ chia sẻ với các bạn một app covid-19, để mọi người cùng tham khảo, tính năng của App này chỉ đơn giản là show số liệu về dịch Covid của các nước trên thế giới như: Số ngườ

0 0 63

- vừa được xem lúc

ReactJS Custom Hooks

ReactJS cung cấp rất nhiều cho bạn các hook mà bạn có thể sử dụng hằng ngày vào project của mình. Nhưng bên cạnh đó bạn có thể tự tạo ra các hook của riêng bạn để sử dụng, làm cho việc tối ưu hóa code

0 0 85

- vừa được xem lúc

3 cách để tránh re-render khi dùng React context

3 cách để tránh re-render khi dùng React context. Nếu đã từng sử dụng React context cho dự án của bạn, và gặp phải tình trạng các component con - Consumer re-render rất nhiều lần, thậm chí bị sai logi

0 0 44

- vừa được xem lúc

Tìm hiểu về React Hook: Sử dụng useDebugValue

Trong bài viết hôm này, tôi sẽ giới thiệu các bạn một React Hook tiếp theo, đó là useDebugValue. useDebugValue là gì .

0 0 63