🧩 Svelte: Mudah Bukan Berarti Gampang Dipelihara

Ariska HidayatAriska Hidayat
2 min read

"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 list

  • useLayoutEffect jelas urutannya

  • useMemo untuk cache

  • useCallback 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?

  1. Disiplin menulis reaktivitas: jangan asal $:, gunakan helper function/folder terpisah.

  2. Gunakan store jika state mulai menyebar ke banyak komponen.

  3. Dokumentasikan dependency reaktif jika kompleks.

  4. Gunakan onMount, onDestroy untuk efek samping, jangan semuanya $:.

  5. 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.

0
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.