🧩 Svelte: Mudah Bukan Berarti Gampang Dipelihara


"Wah, kok simple banget ya bikin UI di Svelte. Jauh lebih singkat daripada React!"
Ya, memang benar. Tapi... hati-hati. Svelte itu mudah ditulis, tapi belum tentu mudah dipelihara — apalagi di proyek kompleks.
Mari kita bahas kenapa.
✅ 1. Svelte Terlihat Sangat Sederhana
Contoh counter:
<script>
let count = 0;
</script>
<button on:click={() => count++}>Add</button>
<p>Count: {count}</p>
👆 "Lho, ini mah lebih pendek dari React!"
Benar, karena Svelte menggunakan pendekatan compile-time reactivity — tidak perlu useState
atau useEffect
. Cukup let
, dan semuanya langsung reaktif.
⚠️ 2. Tapi Reaktivitas Ini Bisa Menjebak
Contoh jebakan:
let items = [1, 2, 3];
function addItem() {
items.push(4); // Tidak akan memicu update DOM!
}
Kenapa? Karena Svelte hanya memantau assignment, bukan mutasi internal.
✅ Solusi:
items = [...items, 4];
🧠 3. Reactive Statements = Pedang Bermata Dua
$: total = harga * jumlah;
💡 Mudah untuk menghitung nilai turunan. Tapi...
Jika kamu punya:
$: diskon = total * 0.1;
$: hargaAkhir = total - diskon;
➡️ Sekilas rapi, tapi jika rantai ini makin panjang, akan sulit dilacak dan rawan efek domino.
🧵 4. Tidak Ada Struktur Lifecycle Sejelas React
Di React:
useEffect
punya dependency listuseLayoutEffect
jelas urutannyauseMemo
untuk cacheuseCallback
untuk optimalisasi
Di Svelte? Semua bisa $:
. Simpel, tapi semua campur aduk kalau tidak disiplin.
🔍 5. Kode Terlalu Ajaib = Sulit Dibaca
Kode yang terlalu pendek kadang kehilangan konteks, terutama untuk developer lain atau kamu di masa depan.
Contoh:
$: hasil = data ? proses(data) : null;
Tanpa penjelasan, siapa tahu data
dari mana? proses
efek samping atau murni?
Kalau di React, kamu akan dipaksa memisah menjadi hook atau fungsi jelas.
🧱 6. Struktur Proyek Besar Harus Kamu Tentukan Sendiri
React (dengan Next.js, misalnya) punya:
App router
Folder
app
,components
,hooks
, dsb
Svelte? Kamu bebas.
Tapi kebebasan tanpa panduan bisa bikin struktur proyek kacau kalau timnya belum berpengalaman.
💡 Jadi, Apa Solusinya?
Disiplin menulis reaktivitas: jangan asal
$:
, gunakan helper function/folder terpisah.Gunakan store jika state mulai menyebar ke banyak komponen.
Dokumentasikan dependency reaktif jika kompleks.
Gunakan
onMount
,onDestroy
untuk efek samping, jangan semuanya$:
.Buat arsitektur sendiri: misalnya folder
components
,stores
,lib
,routes
.
✍️ Penutup: Simple = Powerful, Tapi…
Svelte memang memberikan pengalaman menulis UI yang menyenangkan, tapi jangan terkecoh dengan kesederhanaannya.
Mudah ditulis bukan berarti mudah dirawat.
Gunakan kemudahan itu dengan bijak, dan kamu akan punya aplikasi yang cepat, efisien, dan tetap nyaman dikembangkan jangka panjang.
Subscribe to my newsletter
Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ariska Hidayat
Ariska Hidayat
I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.