Episode ini menelusuri sejarah Vue dari versi 1 hingga Vue 3, menjelaskan filosofi progressive framework dan incremental adoption, masalah yang diselesaikan Vue dibandingkan pendekatan tradisional, serta posisinya di tengah React dan framework frontend lain.

Sebelum menulis baris kode Vue pertama, penting untuk memahami dari mana Vue berasal dan masalah apa yang dia pecahkan. Framework bukan sekadar kumpulan API — dia adalah jawaban terhadap kesulitan tertentu. Ketika kalian paham masalahnya, setiap keputusan desain di Vue akan terasa masuk akal, bukan sekadar aturan yang harus dihafal.
Episode 1 menceritakan perjalanan Vue dari proyek pribadi menjadi salah satu framework frontend terpopuler di dunia, membedah filosofi progressive framework, lalu membandingkannya dengan pendekatan tradisional dan React. Ini adalah episode cerita dan konteks — tidak banyak kode, tapi pemahaman yang dihasilkan akan menyertai kalian selama 23 episode berikutnya.
Vue pertama kali dirilis oleh Evan You pada tahun 2014. Evan saat itu bekerja di Google dan memakai Angular untuk berbagai proyek. Dia merasa Angular terlalu berat untuk kebutuhan tertentu, lalu mulai menulis library yang lebih ringan dan lebih mudah diadopsi — sesuatu yang bisa mengambil bagian terbaik dari Angular tanpa memaksakan seluruh ekosistemnya.
2014 -> Vue 1: reactive binding dan template dasar
2016 -> Vue 2: Virtual DOM, komponen, dan Vuex
2020 -> Vue 3: Composition API dan Proxy reactivityVue 2 yang rilis tahun 2016 menjadi titik lompatan popularitas berkat Virtual DOM, sistem komponen yang matang, dan Vuex untuk state management. Komunitas tumbuh cepat dan dokumentasi berbahasa non-Inggris yang lengkap membuat Vue diminati developer di seluruh dunia.
Vue 3 rilis tahun 2020 sebagai penulisan ulang besar-besaran. Dua perubahan paling fundamental:
Proxy JavaScript sehingga bisa melacak perubahan properti baru dan penghapusan properti secara akurat.Meski banyak yang berubah, Vue 3 mempertahankan sintaks template dan Options API agar migrasi dari Vue 2 terasa familiar. Pendekatan ini mencerminkan nilai inti Vue: evolusi tanpa perombakan total.
Filosofi utama Vue adalah progressive framework — kalian tidak perlu memutuskan segalanya di awal. Sebuah halaman web biasa bisa menambahkan satu Vue app kecil hanya untuk bagian tertentu, misalnya form atau komponen counter, tanpa menulis ulang seluruh situs:
<div id="app">{{ message }}</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script>
const { createApp } = Vue;
createApp({
data() {
return { message: "Halo Vue" };
},
}).mount("#app");
</script>Kode di atas cukup dimuat lewat satu tag script — Vue langsung bekerja di halaman yang sudah ada. createApp({...}).mount("#app") membuat aplikasi Vue dan menautkannya ke elemen DOM.
Karena adopsi bertahap, kalian bisa berhenti di tingkat mana pun sesuai kebutuhan:
Semakin naik level, semakin banyak alat ekosistem yang dipakai, tapi semuanya optional. Vue tidak pernah memaksa — inilah yang membedakannya dari framework yang bersifat all-or-nothing.
Dengan JavaScript vanilla, mengubah data lalu memperbarui DOM adalah pekerjaan manual dan mudah salah:
const count = document.querySelector("#count");
let value = 0;
document.querySelector("#btn").addEventListener("click", () => {
value = value + 1;
count.textContent = value;
});Di sini kalian mengendalikan langkah demi langkah (imperatif): tambahkan listener, baca elemen, tulis ulang teks. Vue menggantinya dengan declarative rendering — kalian hanya mendeskripsikan tampilan, dan Vue menangani sinkronisasi:
<script setup>
import { ref } from "vue";
const value = ref(0);
</script>
<template>
<p>{{ value }}</p>
<button @click="value++">Tambah</button>
</template>ref(0) membuat state reaktif, dan saat value berubah, Vue otomatis memperbarui bagian template yang bergantung padanya. Perhatikan: tidak ada querySelector, tidak ada textContent, tidak ada listener manual.
Masalah kedua yang dipecahkan Vue adalah kompleksitas state dan logika. Di aplikasi besar, kode UI cepat menjadi jalinan callback dan variabel global yang sulit dilacak. Vue menyediakan:
ref, reactive, computed, dan watch yang membentuk lapisan data yang terstruktur.Pendekatan berbasis komponen membuat setiap bagian UI punya batas yang jelas: props masuk, events keluar, dan logika internal tersembunyi. Ini akan kita bangun bertahap mulai episode 5.
React dan Vue sama-sama framework komponen berbasis JavaScript, tapi ada perbedaan filosofi:
| Aspek | Vue 3 | React |
|---|---|---|
| Template | HTML dengan direktif | JSX di dalam JavaScript |
| Styling | Scoped CSS bawaan | CSS-in-JS atau utility |
| Reactivity | Proxy, otomatis | Re-render eksplisit, hooks |
| Bundle default | Vite, lebih ringan | Tergantung tooling |
Vue paling cocok ketika kalian menginginkan sintaks template yang mudah dibaca, kurva belajar yang landai, dan kemampuan mengadopsi secara bertahap di proyek yang sudah ada. React unggul untuk ekosistem paling luas dan kontrol penuh melalui JSX. Tidak ada pilihan yang salah — keduanya framework kelas dunia, dan memahami keduanya akan membuat kalian developer frontend yang lebih baik.
Episode 1 memberi kalian konteks sejarah dan filosofi: Vue lahir dari kebutuhan akan framework yang ringan dan progresif, berkembang dari Vue 1 ke Vue 3 dengan penulisan ulang besar di tahun 2020, dan memecahkan masalah reactive binding serta kompleksitas state dengan declarative rendering dan composition.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah konsep dasar dan arsitektur utama — bagaimana sistem reaktivitas Proxy bekerja di balik layar, peran Virtual DOM dan template compilation, siklus hidup komponen, serta anatomy Single File Component dengan <script setup>, template, dan scoped styles. Ini adalah fondasi teknis untuk semua episode selanjutnya.