React Compiler adalah alat build-time dari tim React yang menyisipkan memoization
secara otomatis ke komponen dan hook, sehingga useMemo, useCallback, dan
React.memo tidak lagi wajib ditulis manual. Compiler ini resmi stabil sejak
versi 1.0 dirilis 7 Oktober 2025, dan Next.js sudah mendukungnya langsung lewat
opsi reactCompiler di konfigurasi.
Ringkasan cepat:
- React Compiler stabil (versi 1.0) sejak 7 Oktober 2025, sudah lepas status eksperimental dan jadi default di template baru Next.js, Vite, dan Expo.
- Compiler menganalisis data-flow dan mutability komponen saat build, lalu menyisipkan memoization otomatis -
useMemo/useCallbackmanual tidak lagi wajib. - Kalau compiler tidak yakin suatu nilai aman dimemoisasi tanpa melanggar Rules of React, ia membiarkannya tanpa optimasi daripada memaksakan perubahan berisiko bug.
- Di Meta Quest Store, initial load dan navigasi jadi hingga 12% lebih cepat tanpa kenaikan memori - angka ini spesifik implementasi Meta, bukan jaminan hasil sama di proyek lain.
- Aktifkan dengan instal
babel-plugin-react-compilersebagai dev dependency lalu tambahkanreactCompiler: truedinext.config.ts.
Apa Itu React Compiler dan Bagaimana Cara Kerjanya?
React Compiler berjalan sebagai plugin Babel saat proses build, menganalisis
alur data (data-flow) dan mutability tiap komponen untuk menentukan bagian mana
yang aman dimemoisasi. Alih-alih developer menghitung sendiri dependency array
useMemo/useCallback, compiler membaca kode React biasa lalu menyisipkan
logika cache yang setara secara otomatis, termasuk untuk kasus memoization
kondisional setelah early return yang sulit dilakukan manual.
Menurut pengumuman resmi React Compiler 1.0, compiler juga memvalidasi Rules of React lewat integrasi ESLint. Kalau compiler tidak bisa memastikan suatu nilai aman dimemoisasi tanpa melanggar aturan tersebut, ia akan membiarkan nilai itu tanpa memoization daripada memaksakan optimasi yang berisiko menimbulkan bug.
Dampak Performa di Skala Produksi
Di Meta Quest Store, initial load dan navigasi antar halaman jadi hingga 12% lebih cepat, dan sebagian interaksi lebih dari 2,5 kali lebih cepat setelah memakai React Compiler, dengan penggunaan memori yang tetap netral.
Angka ini spesifik untuk aplikasi Meta Quest Store dan tidak bisa dianggap janji hasil yang sama di semua proyek. Besarnya dampak tetap bergantung pada seberapa berat render tree aplikasi dan seberapa banyak komponen yang sebelumnya tidak dimemoisasi sama sekali.
Kapan Masih Perlu useMemo dan useCallback di 2026?
React Compiler tidak menghapus total kegunaan useMemo dan useCallback,
keduanya tetap tersedia sebagai escape hatch untuk kasus yang butuh kontrol
eksplisit, misalnya saat memoization manual dipakai sebagai kontrak API yang
sengaja dijaga stabil oleh library pihak ketiga. Untuk kode aplikasi baru,
rekomendasi tim React sendiri adalah mengandalkan compiler dan tidak lagi
menulis memoization manual secara default.
Memoization Manual vs React Compiler: Perbandingan Singkat
| Aspek | useMemo/useCallback manual | React Compiler otomatis |
|---|---|---|
| Siapa yang menulis | Developer, eksplisit di tiap komponen | Compiler, otomatis saat build |
| Kapan diterapkan | Ditulis di source code, berjalan saat runtime | Dianalisis dan disisipkan saat build-time lewat plugin Babel |
| Kalau dependency array salah | Berisiko bug stale value karena kesalahan penulisan manual | Kalau compiler tidak yakin aman, nilai dibiarkan tanpa optimasi daripada memaksakan perubahan berisiko |
| Status rekomendasi 2026 | Masih relevan sebagai escape hatch untuk kontrak API pihak ketiga | Rekomendasi default tim React untuk kode aplikasi baru |
Satu hal yang perlu diperhatikan: membungkus value dengan useCallback secara
manual di komponen yang sudah dianalisis compiler kadang membuat hasil
optimasi kurang presisi dibanding kalau dibiarkan compiler yang menangani
sendiri. Praktik paling aman adalah menghapus memoization manual lama secara
bertahap sambil memverifikasi lewat React DevTools Profiler, bukan
menghapusnya sekaligus tanpa pengecekan.
Bagaimana Cara Mengaktifkan React Compiler di Next.js?
Berdasarkan dokumentasi resmi Next.js, langkah mengaktifkannya cukup dua tahap:
-
Instal compiler sebagai dev dependency:
npm install -D babel-plugin-react-compiler -
Tambahkan opsi
reactCompilerdinext.config.ts:import type { NextConfig } from "next"; const nextConfig: NextConfig = { reactCompiler: true, }; export default nextConfig;
Next.js memakai optimasi SWC khusus supaya compiler hanya diterapkan ke file
yang benar-benar memuat JSX atau React Hooks, bukan ke seluruh proyek, sehingga
dampaknya ke waktu build tetap kecil dan terlokalisasi. Bagi yang ingin
mengaktifkannya bertahap per komponen alih-alih langsung ke seluruh aplikasi,
tersedia compilationMode: "annotation" yang mewajibkan directive "use memo"
eksplisit di komponen yang ingin dioptimasi compiler.
Ringkasan
- React Compiler stabil sejak versi 1.0 (7 Oktober 2025) dan menambahkan
memoization otomatis tanpa perlu
useMemo/useCallbackmanual di sebagian besar kasus. useMemodanuseCallbackmasih boleh dipakai sebagai escape hatch untuk kasus khusus, tapi bukan lagi default yang wajib ditulis di setiap komponen.- Mengaktifkannya di Next.js cukup dua langkah: instal
babel-plugin-react-compiler, lalu setreactCompiler: truedinext.config.ts. - React Compiler mengoptimasi sisi render secara otomatis; untuk sisi mutasi data, App Router punya pendekatan komplementer lewat Server Actions yang memanggil fungsi server langsung dari form tanpa endpoint API terpisah.
- Keputusan arsitektur seperti ini berkaitan langsung dengan pilihan App Router vs Pages Router yang sudah dibahas terpisah. Kalau butuh bantuan audit atau migrasi performa Next.js untuk proyekmu, lihat layanan web development yang ditawarkan.
- React Compiler jadi salah satu alasan upgrade dari Next.js 15 ke 16 layak dipertimbangkan; langkah migrasinya dibahas di panduan upgrade Next.js 15 ke Next.js 16.
