Viết component mà không cần tạo node với React Fragments
24/11/2023 01:36
Fragment là một common pattern được giới thiệu kể từ khi React 16 ra đời. Nó cho phép bạn return nhiều element từ một component mà không làm sinh ra những DOM
Trong React, bất cứ khi nào bạn muốn hiển thị nội dung nào đó trên màn hình, bạn cần sử dụng phương thức kết xuất bên trong thành phần đó. Phương thức kết xuất này có thể trả về các phần tử đơn hoặc nhiều phần tử. Phương thức kết xuất sẽ chỉ hiển thị một nút gốc duy nhất bên trong nó tại một thời điểm. Tuy nhiên, nếu bạn muốn trả về nhiều phần tử, phương thức kết xuất sẽ yêu cầu 'div' gắn thẻ và đặt toàn bộ nội dung hoặc các thành phần bên trong nó. Nút bổ sung này cho DOM đôi khi dẫn đến định dạng sai đầu ra HTML của bạn và cũng không được nhiều nhà phát triển yêu thích.
- // Rendering with div tag
- class App extends React.Component {
- render() {
- return (
- //Extraneous div element
- <div>
- <h2> Hello World! </h2>
- <p> Welcome to the JavaTpoint. </p>
- </div>
- );
- }
- }
Để giải quyết vấn đề này, React đã giới thiệu Fragments từ 16.2 và phiên bản cao hơn. Phân đoạn cho phép bạn nhóm danh sách con mà không cần thêm nút bổ sung vào DOM.
Cú pháp
- <React.Fragment>
- <h2> con1 </h2>
- <p> child2 </p>
- .. ......... .........
- </React.Fragment>
Ví dụ
- // Rendering with fragments tag
- class App extends React.Component {
- render() {
- return (
- <React.Fragment>
- <h2> Hello World! </h2>
- <p> Welcome to the JavaTpoint. </p>
- </React.Fragment>
- );
- }
- }
Tại sao chúng tôi sử dụng Fragment?
Lý do chính để sử dụng thẻ Fragments là:
- Nó làm cho việc thực thi mã nhanh hơn so với thẻ div.
- Phải mất ít bộ nhớ hơn.
Cú pháp ngắn của mảnh vỡ
Ngoài ra còn có một cách viết tắt khác để khai báo các đoạn cho phương thức trên. Có vẻ như thẻ trống trong đó chúng ta có thể sử dụng '<>' và '' thay vì 'React.Fragment'.