Bạn có bao giờ cảm thấy 'chóng mặt' vì mớ bòng bong <div> trong code HTML/CSS của mình không? Đặc biệt là khi định nghĩa các bố cục grid phức tạp, cứ phải bơi trong một 'bể súp div' dày đặc, vừa rối mắt vừa khó kiểm soát.Hãy nhìn bức tranh 'quá khứ' này mà xem, đây là cách CSS grid định nghĩa hồi xưa, đầy rẫy các thẻ <div> lồng vào nhau:<img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31h9r9n3418kh72nje87.png' alt='Mớ bòng bong DIV cũ kỹ cho CSS Grid'>Nhưng khoan đã, thời đại đã khác rồi! Giờ đây, chúng ta có một 'phép thuật' mới toanh mang tên **Custom Element (hay còn gọi là Web Component)**! Thay vì cái mớ hỗn độn kia, bạn có thể biến định nghĩa CSS grid của mình thành một thứ gọn gàng, sáng sủa và dễ đọc hơn rất nhiều. Cứ như từ một căn phòng bừa bộn thành một không gian tối giản, hiện đại vậy đó!Hãy chiêm ngưỡng 'tương lai' của CSS grid, nơi các thành phần được đóng gói tinh gọn:<img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9maprfdbb5rtxxanz9ma.png' alt='CSS Grid hiện đại với Custom Element/Web Component'>Và bạn biết gì không? Chỉ cần thay đổi cách định nghĩa CSS grid như vậy là bạn đã hoàn thành việc viết Custom Element/Web Component đầu tiên của mình rồi đó! Thật không thể tin nổi phải không?Cái lợi siêu to khổng lồ của cách làm này ư? Bạn không còn phải 'mỏi mắt' đi tìm cái thẻ </div> đóng đâu nữa! Cứ tưởng tượng mà xem, code của bạn sẽ sạch đẹp, dễ đọc và dễ bảo trì đến nhường nào!À, một mẹo nhỏ bạn cần nhớ nè: bất kỳ tên thẻ HTML nào mà có dấu gạch ngang (-) ở giữa đều là một HTMLElement hợp lệ. Đó chính là cách chúng ta tạo ra các Custom Element đấy!Muốn 'đắm chìm' sâu hơn vào thế giới của các thành phần Web Components hiện đại, không còn bị 'ám ảnh' bởi div? Hãy đọc thêm bài viết này nhé: <a href="https://dev.to/dannyengelman/not-a-div-insidein-sightsite-18lj">https://dev.to/dannyengelman/not-a-div-insidein-sightsite-18lj</a>
Tại sao lập trình viên vẫn 'mắc kẹt' với React trong khi Web Components đã đủ mạnh mẽ? Khám phá sức mạnh của các tiêu chuẩn web và lý do bạn nên 'quay xe' sang Web Components để xây dựng ứng dụng bền vững, tương lai!