Astro Islands: Kiến trúc 'Đảo' thay đổi cuộc chơi Frontend như thế nào?
Tại sao Astro lại nhanh đến vậy? Bí mật nằm ở Islands Architecture - kỹ thuật giúp giảm 90% lượng Javascript gửi về client.
Phan Anh Tuấn Nguồn
Trong kỷ nguyên SPAs (Single Page Applications) với React/Vue, chúng ta thường gặp vấn đề Hydration. Toàn bộ trang web biến thành một cục Javascript khổng lồ, trình duyệt phải tải và thực thi hết đống đó thì người dùng mới tương tác được.
Astro ra đời và giải quyết vấn đề này bằng Islands Architecture (Kiến trúc Đảo).
Islands Architecture là gì?
Hãy tưởng tượng trang web của bạn là một đại dương tĩnh lặng (Static HTML). Trên đại dương đó, có vài hòn đảo (Components) nổi lên và có sự sống (Interactive Javascript).
- Đại dương (Static HTML): Header, Footer, Sidebar, Bài viết (Text/Image). Những phần này không cần Javascript để chạy. Astro render chúng thành HTML thuần túy. 0kB JS!
- Hòn đảo (Dynamic Components): Nút Like, Carousel ảnh, Form bình luận, Giỏ hàng. Chỉ những phần này mới cần Javascript/React/Vue load lên.
Cơ chế Partial Hydration
Astro sử dụng kỹ thuật Partial Hydration (Hydration từng phần). Thay vì hydrate cả trang, nó chỉ hydrate đúng những “hòn đảo” cần thiết.
Ví dụ: Bạn có một trang Blog dài.
- Nội dung bài viết: HTML tĩnh (Load cực nhanh).
- Thanh search ở Header: Là một Island (React component).
Khi user vào trang, họ thấy nội dung ngay lập tức (First Contentful Paint cực thấp). Javascript cho thanh search sẽ được tải song song hoặc lazy-load.
Các chỉ thị Client (Client Directives)
Astro cho phép bạn kiểm soát chính xác KHI NÀO một Island được load:
<Component client:load />: Load và hydrate ngay lập tức khi trang mở (VD: Navbar).<Component client:idle />: Load khi trình duyệt rảnh rỗi (VD: Tracking analytics).<Component client:visible />: Chỉ load khi user cuộn tới nó (VD: Footer, Comment section). Đây là game changer về hiệu năng!<Component client:media="(max-width: 50em)" />: Chỉ load trên Mobile/Desktop.
Tại sao chọn Astro Islands?
- Hiệu năng Performance: Điểm Google Lighthouse 100/100 là điều bình thường với Astro.
- SEO: Google cực thích HTML tĩnh.
- Linh hoạt: Bạn có thể dùng React cho cái Header, Vue cho cái Sidebar, và Svelte cho cái Footer trên CÙNG MỘT TRANG.
Kết luận
Islands Architecture đưa web trở về bản chất của nó: HTML first. Javascript chỉ là gia vị, không phải món chính. Nếu bạn làm Content Site, Blog, E-commerce, Marketing Site… Astro là lựa chọn số 1 hiện nay.
Tham khảo từ Astro Documentation.
Thử Thách Kiến Thức Lịch Sử?
Khám phá hàng trăm câu hỏi trắc nghiệm lịch sử thú vị tại HistoQuiz. Vừa học vừa chơi, nâng cao kiến thức ngay hôm nay!
Astro Docs
Nhà xuất bản gốcBài viết này được trích dẫn và tổng hợp từ Astro Docs, nơi cung cấp các bài viết và tài liệu chất lượng cao.