
Svelte là gì?
Svelte là một framework JavaScript nguồn mở được tạo bởi Rich Harris, phát hành lần đầu năm 2016. Khác với React, Vue hay Angular, Svelte hoạt động ở giai đoạn compile-time — mã nguồn được chuyển đổi thành vanilla JavaScript tối ưu trước khi chạy trên trình duyệt. Điều này loại bỏ hoàn toàn Virtual DOM, giúp ứng dụng nhẹ hơn và chạy nhanh hơn đáng kể.

Phiên bản hiện tại là Svelte 5 (ra mắt tháng 10/2024 sau 18 tháng phát triển), giới thiệu hệ thống Runes — cơ chế reactivity mới thay thế cách khai báo $: và let truyền thống. npm downloads tháng gần nhất đạt khoảng 21.8 triệu, GitHub có hơn 87.900 stars.
Runes — Hệ thống reactivity mới trong Svelte 5
Runes là những biểu tượng đặc biệt điều khiển compiler, mang lại reactivity tinh vi hoạt động cả bên trong file .svelte lẫn các module .svelte.js / .svelte.ts thuần túy:
$state— khai báo trạng thái reactive$derived— giá trị tính toán tự động (memoization)$effect— thực thi side effects khi dependency thay đổi$props— khai báo props của component$bindable— hỗ trợ two-way binding$inspect— debugging tool cho reactivity
Điểm cải tiến lớn nhất: trước Svelte 5, reactivity chỉ hoạt động trong file .svelte. Bây giờ bạn có thể tách logic reactive ra các file JavaScript/TypeScript riêng, giải quyết vấn đề lớn nhất của Svelte 4 — khó tái sử dụng code reactive bên ngoài component.
SvelteKit — Framework full-stack

SvelteKit là ứng dụng framework chính thức cho Svelte, tương tự Next.js cho React hay Nuxt cho Vue. Xây dựng trên Vite, SvelteKit cung cấp:
- File-based routing tự động
- Server-side rendering (SSR) và pre-rendering
- Form actions tích hợp sẵn
- Streaming SSR và snapshots
- Zero-config deploy lên Vercel, Netlify, Cloudflare
- Hỗ trợ PWA và service workers
SvelteKit 2 ra mắt tháng 12/2023, và SvelteKit 3 đang trong giai đoạn preview (v3.0.0-next.16). GitHub stars đạt 20.700+.
So sánh Svelte với React, Vue và Angular
| Đặc điểm | Svelte | React | Vue | Angular |
|---|---|---|---|---|
| Cách tiếp cận | Compiler (build-time) | Runtime (VDOM) | Runtime (VDOM) | Runtime (Change Detection) |
| Kích thước bundle | Nhỏ nhất | Lớn | Trung bình | Lớn nhất |
| Virtual DOM | Không | Có | Có | Không (Incremental DOM) |
| npm downloads/tháng | ~21.8M | ~671M | ~59M | ~2.6M |
| GitHub stars | 87.9K | ~230K | ~210K | ~97K |
| Curve học | Dễ | Trung bình | Dễ-TB | Cao |
Ưu và nhược điểm
Ưu điểm
- Code ít hơn — Component Svelte ngắn hơn đáng kể so với React/Vue. Không boilerplate
useState,useEffect, hay import framework. - Hiệu năng — Không VDOM overhead, bundle size nhỏ nhất trong các framework lớn.
- Developer experience — Viết gần như vanilla HTML/CSS/JS. Dễ onboarding cho developer mới.
- Tính năng tích hợp — Transitions, animations, scoped CSS, two-way binding đều có sẵn, không cần thư viện bên ngoài.
- Runes — Reactive system hoạt động xuyên suốt component và module.
Nhược điểm
- Ecosystem nhỏ hơn — Ít thư viện bên ngoài hơn React/Vue. Đang phát triển (Skeleton, Flowbite Svelte, shadcn-svelte).
- Ít cơ hội việc làm — React/Vue/Angular chiếm ưu thế trên thị trường tuyển dụng.
- Yêu cầu build step — Cần compiler, không có runtime-only mode thuần túy.
- Community nhỏ hơn — Ít câu trả lời trên Stack Overflow, ít tutorial hơn.
Sử dụng Svelte ở đâu?
Svelte phù hợp cho nhiều loại dự án: ứng dụng web tương tác, landing page (bundle nhẹ = tải nhanh), dashboard, admin panel, web components (hỗ trợ custom elements native), SSR apps với SvelteKit, và progressive web apps.
Các công ty đang sử dụng Svelte bao gồm Apple (một phần apple.com), New York Times, Brave Browser, IKEA, GoDaddy, và Rakuten. Con số này cho thấy Svelte không chỉ là framework experimental mà đã được kiểm chứng trong môi trường production quy mô lớn.
Bắt đầu với Svelte
Cách nhanh nhất để bắt đầu là dùng SvelteKit:
# Tạo project SvelteKit mới
npx sv create my-app
# Hoặc dùng Vite trực tiếp
npm create vite@latest my-app -- --template svelte
# Dev server
cd my-app && npm install && npm run dev
Một component cơ bản với Svelte 5 và Runes:
<script lang="ts">
let count = $state(0);
</script>
<button onclick={() => count++}>
clicks: {count}
</button>
<style>
button { font-size: 2em; }
</style>
Lời kết
Svelte mang đến một cách tiếp cận khác biệt và hiệu quả cho phát triển web. Với compiler-based architecture, hệ thống Runes mạnh mẽ, và SvelteKit full-stack, đây là lựa chọn đáng cân nhắc cho dự án mới. Dù ecosystem chưa lớn bằng React hay Vue, nhưng tốc độ phát triển và chất lượng codebase khiến Svelte trở thành framework đáng theo dõi trong thời gian tới.
Tham khảo thêm:
