Episode ini menelusuri kelahiran React di Facebook, filosofi declarative UI, dan evolusinya dari ReactDOM ke hooks serta React Native. Kalian juga membandingkan React dengan pendekatan jQuery dan server-side rendering tradisional, lalu memahami mengapa Virtual DOM menjadikan update UI efisien.

Sebelum kalian menulis komponen React, penting untuk paham dari mana React lahir dan masalah apa yang dia pecahkan. React tidak diciptakan sebagai tren — dia lahir dari masalah nyata di Facebook: halaman berita yang harus menampilkan data berubah-ubah ke jutaan pengguna tanpa membuat UI berkedut atau tidak sinkron.
Episode 1 membawa kalian menyusuri evolusi React, dari prototype internal tahun 2011 sampai posisinya hari ini sebagai fondasi ekosistem frontend terbesar. Setelah episode ini, kalian akan paham kenapa React dirancang seperti sekarang, dan itu membuat semua episode selanjutnya jauh lebih bermakna — bukan sekadar menghafal sintaks.
React dibuat oleh Jordan Walke, engineer Facebook, sekitar tahun 2011 untuk mengatasi masalah sinkronisasi data di News Feed. Prototipe awalnya bernama FaxJS, lalu diadopsi untuk fitur lain seperti Instagram pada 2012, dan akhirnya dirilis open source pada 2013. Ini momen penting: untuk pertama kalinya, sebuah library menawarkan konsep declarative UI di mana pengembang cukup mendeskripsikan tampilan yang diinginkan.
2011 Prototype FaxJS di News Feed Facebook
2013 React dirilis open source
2015 React Native untuk aplikasi mobile
2016 react-router 4 dan ekosistem Redux matang
2019 Hooks resmi rilis di React 16.8
2022 Server Components diperkenalkanPerhatikan satu garis besarnya: dari library kecil untuk News Feed, React tumbuh menjadi ekosistem yang mencakup web, mobile, dan server.
React terpisah menjadi dua bagian: react berisi logika inti, dan react-dom berisi renderer untuk web. Pemisahan ini memungkinkan lahirnya React Native pada 2015 — renderer yang menargetkan komponen iOS dan Android asli. Lalu pada 2019, Hooks (React 16.8) menggantikan mayoritas pola class component dan membuat state logic bisa dipakai ulang tanpa class.
Perbedaan paling mencolok antara React klasik dan modern:
this.state, lifecycle method seperti componentDidMount, dan render via method render.useState, useEffect, dan useMemo.Modern React lebih singkat, tidak memakai this, dan logika yang mirip bisa diekstrak ke custom hooks. Seluruh series ini memakai pola modern, karena itulah arah yang didukung penuh oleh tim React.
Sebelum React, halaman web dibangun dengan menulis HTML statis lalu memanipulasinya dengan jQuery. Setiap tombol, modal, atau daftar ditulis ulang di banyak tempat. React memperkenalkan component — potongan UI yang bisa dipakai ulang dengan props yang berbeda:
function Tombol({ label, onClick }) {
return <button onClick={onClick}>{label}</button>
}
function App() {
return (
<div>
<Tombol label="Simpan" onClick={() => console.log("disimpan")} />
<Tombol label="Batal" onClick={() => console.log("dibatalkan")} />
</div>
)
}Fungsi Tombol di atas dipakai dua kali dengan props berbeda. Inilah komposabilitas: komponen kecil disusun menjadi antarmuka besar, dan setiap bagian bisa diperbaiki tanpa mengganggu bagian lain.
Masalah terbesar jQuery dan DOM manipulation manual: setiap perubahan kecil memaksa kalian mencari elemen, mengubahnya, lalu menyinkronkan state di banyak tempat — rawan bug dan lambat. React memperkenalkan Virtual DOM, representasi JavaScript dari UI yang murah untuk dibuat:
state berubah -> render virtual tree -> diff (reconciliation) -> patch DOM nyataKetika state berubah, React membuat pohon virtual baru, membandingkannya dengan pohon sebelumnya lewat proses yang disebut reconciliation, lalu hanya memodifikasi bagian DOM nyata yang benar-benar berbeda. Hasilnya: update UI tetap konsisten tanpa kerja manual.
jQuery menyelesaikan masalah kompatibilitas browser dan seleksi elemen, tapi menyerahkan seluruh tanggung jawab sinkronisasi state kepada pengembang. Semakin kompleks aplikasinya, semakin banyak kode yang berulang. React sebaliknya: kalian mendeskripsikan tampilan berdasarkan state, dan React yang bertanggung jawab menyesuaikan DOM.
Sebelum SPA, setiap interaksi memuat ulang halaman dari server. React memindahkan rendering ke browser sehingga navigasi terasa instan dan interaksi berlangsung tanpa reload penuh. Inilah yang membuat React banyak dipilih untuk aplikasi interaktif — dashboard, chat, e-commerce, dan kanban.
npm install react react-domPerintah npm install react react-dom menambahkan dua package inti React. Cukup ini untuk memulai — episode 3 akan memakai Vite agar setup lebih rapi.
Beberapa alasan kenapa React mendominasi pengembangan UI:
React juga tidak memaksa memakai satu pendekatan — kalian bebas memilih router, state manager, dan struktur folder. Fleksibilitas ini adalah kekuatan sekaligus tanggung jawab yang akan kita kelola di episode 18.
Episode 1 memberi kalian konteks sejarah dan alasan filosofis di balik React: lahir dari masalah sinkronisasi UI di Facebook, memecahkan kompleksitas DOM dengan component dan declarative UI, serta menawarkan efisiensi lewat Virtual DOM.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah konsep dasar & arsitektur utama — cara kerja Virtual DOM dan reconciliation di balik layar, render cycle dan commit phase, peran JSX, Babel, dan bundler, serta arsitektur React Fiber dengan concurrent rendering. Siapkan mental untuk melihat apa yang terjadi di dalam React.