Trong React 16.2, hỗ trợ cải tiến Fragments
đã được thêm vào. Thông tin thêm có thể được tìm thấy trên bài đăng trên blog của React ở đây.
Chúng ta đều quen thuộc với mã sau đây:
render() {
return (
// Extraneous div element :(
<div>
Some text.
<h2>A heading</h2>
More text.
<h2>Another heading</h2>
Even more text.
</div>
);
}
Vâng, chúng tôi cần một div container, nhưng nó không phải là vấn đề lớn.
Trong React 16.2, chúng ta có thể làm điều này để tránh div container xung quanh:
render() {
return (
<Fragment>
Some text.
<h2>A heading</h2>
More text.
<h2>Another heading</h2>
Even more text.
</Fragment>
);
}
Trong cả hai trường hợp, chúng ta vẫn cần một phần tử container bao quanh các phần tử bên trong.
Câu hỏi của tôi là, tại sao sử dụng một Fragment
thích hợp hơn? Nó có giúp với hiệu suất? Nếu vậy, tại sao? Sẽ yêu một cái nhìn sâu sắc.
div
là bạn không luôn muốn có một phần tử trình bao bọc. Các phần tử Wrapper có một ý nghĩa và thông thường bạn cần các kiểu bổ sung cho ý nghĩa đó được loại bỏ. <Fragment>
chỉ là cú pháp đường mà không được kết xuất. Có những tình huống khi tạo một trình bao bọc rất khó khăn, ví dụ trong SVG, nơi <div>
không thể được sử dụng và <group>
không phải lúc nào cũng như bạn muốn.