52 poin oleh xguru 2025-03-04 | 6 komentar | Bagikan ke WhatsApp
  • React telah digunakan dalam waktu lama sehingga membentuk ekosistem library yang sangat besar
  • Pengembang yang datang dari bahasa/kerangka kerja lain dapat mengalami kesulitan memilih library yang diperlukan untuk membangun aplikasi React
  • Inti React adalah library yang berfokus pada fungsi untuk membangun UI berbasis komponen
    • Dengan memanfaatkan komponen fungsional dan React Hooks, pengembang dapat mengelola state lokal, menangani efek samping, dan mengoptimalkan performa
    • Pada akhirnya, baik komponen maupun hook sama-sama bekerja sebagai cara menyusun UI dengan memanfaatkan fungsi
  • Artikel ini memperkenalkan library React esensial yang dibutuhkan untuk mengembangkan aplikasi berskala besar pada 2025

Memulai proyek React

  • Vite : alat paling populer untuk menyiapkan proyek React. Menawarkan kecepatan build yang cepat dan dukungan TypeScript yang praktis
  • Next.js :
    • meta-framework berbasis React yang mendukung server-side rendering (SSR) dan static site generation (SSG)
    • Menyediakan berbagai fitur seperti file-based routing, API routes, dan React Server Components (RSC)
  • TanStack Start (Beta) : framework baru berbasis React yang direncanakan akan mendukung React Server Components. Sedang dikembangkan sebagai alternatif Next.js
  • React Router : library utama untuk client-side routing di React. Saat ini sedang mengalami perubahan dengan pengaruh dari Remix
  • Astro : alat static site generation yang tidak terikat pada framework tertentu. Dapat digunakan bersama React dan mampu mengoptimalkan performa dengan meminimalkan JavaScript yang tidak perlu
  • Nitro , Redwood , Waku
    • framework dan tooling baru untuk React
    • Waku adalah library pendukung React Server Components yang dibuat oleh pengembang Zustand
  • Rekomendasi:
    • client-side rendering (CSR): Vite
    • server-side rendering (SSR): Next.js
    • static site generation (SSG): Astro

Package manager React

  • npm : package manager bawaan Node.js dan yang paling luas digunakan
  • Yarn : menawarkan pengelolaan dependensi yang lebih baik dan peningkatan kecepatan
  • pnpm : memiliki performa tinggi, tetapi relatif kurang umum digunakan
  • Turborepo : alat pengelolaan monorepo yang memungkinkan beberapa proyek React dikelola secara efisien
  • Rekomendasi:
    • pengelolaan paket umum: npm
    • jika memerlukan optimasi performa: pnpm
    • jika membutuhkan monorepo: Turborepo

Manajemen state React

  • useState, useReducer : hook bawaan dasar React untuk mengelola state di dalam komponen
  • useContext : hook bawaan dasar React untuk manajemen state global
  • Zustand : library untuk mengelola state global dengan API yang sederhana. Lebih mudah digunakan daripada Redux sehingga belakangan ini banyak disukai pengembang
  • Redux : library manajemen state yang telah lama digunakan. Belakangan ini Redux Toolkit telah menjadi standar
  • XState, Zag : library manajemen state berbasis state machine
  • Mobx , Jotai , Nano Stores : library manajemen state yang dapat digunakan sebagai alternatif Zustand atau Redux
  • Rekomendasi:
    • state lokal: useState / useReducer
    • state global kecil: useContext
    • state global besar: Zustand

Data fetching React

  • TanStack Query : library data fetching untuk permintaan REST dan GraphQL API. Menyediakan fitur seperti caching, sinkronisasi, dan optimistic update
  • Apollo Client : library pengelolaan data yang dioptimalkan untuk GraphQL API
  • urql : klien GraphQL yang ringan
  • Relay : klien GraphQL berperforma tinggi yang dikembangkan oleh Facebook
  • RTK Query : alat yang membantu mempermudah data fetching di lingkungan Redux
  • tRPC : menyediakan komunikasi API yang type-safe antara backend dan frontend berbasis TypeScript. Dapat digunakan bersama TanStack Query
  • Rekomendasi:
    • data fetching sisi server: React Server Components / Functions (saat menggunakan meta-framework yang mendukung)
    • data fetching sisi klien: TanStack Query (REST, GraphQL)
    • khusus GraphQL: Apollo Client
    • komunikasi API yang type-safe: tRPC

Routing React

  • React Router : library yang paling banyak digunakan untuk client-side routing
  • TanStack Router (Beta) : library routing baru dengan dukungan TypeScript yang sangat baik
  • Rekomendasi:
    • routing sisi server: Next.js
    • routing sisi klien: React Router (paling banyak digunakan), TanStack Router (tren terbaru)

Styling CSS React

  • Tailwind CSS
    • Pendekatan Utility-First CSS yang memungkinkan styling cepat dengan memanfaatkan class yang telah ditentukan sebelumnya
    • Dapat menjaga konsistensi sistem desain, tetapi penamaan class bisa menjadi rumit
  • CSS Modules
    • Style dimodularisasi per komponen sehingga dapat mencegah benturan style global
    • Merupakan pendekatan CSS-in-CSS yang paling luas digunakan
  • styled-components
    • Pendekatan CSS-in-JS yang mendefinisikan CSS di dalam kode JavaScript
    • Belakangan popularitasnya menurun karena isu performa dan masalah di lingkungan server-side
  • Emotion : Library CSS-in-JS yang mirip dengan styled-components, dengan optimasi performa dan dukungan penggunaan utility class
  • clsx : Library utilitas yang memudahkan pengaturan className secara kondisional
  • StyleX : Solusi CSS-in-JS baru yang dikembangkan Facebook. Menyediakan styling utility-first dengan metode kompilasi yang dioptimalkan
  • Library CSS lainnya: PandaCSS , linaria , vanilla-extract , nanocss , UnoCSS , Styled JSX
  • Rekomendasi:
    • Pendekatan paling populer: Tailwind CSS
    • Jika membutuhkan modularisasi style: CSS Modules
    • Solusi CSS-in-JS terbaru: StyleX

Library UI React

  • Material UI (MUI) : Library UI yang masih banyak digunakan dalam proyek freelance. Berbasis sistem Material Design dari Google
  • Mantine UI : Library UI yang paling populer pada 2022. Mendukung beragam fitur dan style kustom
  • Chakra UI : Library UI yang paling populer pada 2021. Unggul dalam aksesibilitas dan kemudahan styling
  • Hero UI : Library UI yang berganti nama dari Next UI
  • Park UI : Library UI berbasis Ark UI
  • PrimeReact : Menyediakan berbagai komponen UI prebuilt
  • Library UI headless
  • Library UI yang frekuensi penggunaannya menurun
  • Rekomendasi:
    • Library UI dengan style bawaan: MUI, Mantine, Chakra UI
    • Library UI headless tanpa style bawaan: shadcn/ui, Radix

Library animasi React

  • Motion : Library animasi yang paling direkomendasikan (sebelumnya Framer Motion)
  • react-spring : Dapat digunakan untuk membuat animasi berbasis fisika

Grafik dan visualisasi data React

  • D3.js : Library grafik level rendah yang kuat, tetapi kurva belajarnya curam
  • Recharts : Library grafik yang mudah digunakan. Mendukung kustomisasi dasar
  • visx : Bekerja dengan cara yang mirip D3 tetapi lebih ramah untuk React
  • Library grafik lainnya: Victory , nivo , react-chartjs
  • Rekomendasi:
    • Grafik yang praktis: Recharts
    • Kustomisasi gaya D3: visx

Library form React

  • React Hook Form : Library form React yang paling luas digunakan. Dapat dipakai bersama zod untuk validasi form yang kuat
  • Conform : Library form yang sedang naik daun dan mudah diintegrasikan dengan aplikasi full-stack
  • Formik , React Final Form : Library form React tradisional yang masih digunakan di sebagian proyek
  • Rekomendasi:
    • Saat memilih library form, gunakan React Hook Form + zod

Gaya kode dan formatting React

  • ESLint : Linter untuk menjaga gaya kode. Dapat menerapkan style guide yang populer
  • Prettier : Alat yang menyediakan formatting kode yang konsisten. Dapat digunakan bersama ESLint
  • Biome : Linter dan formatter kode all-in-one berbasis Rust yang cepat (sebelumnya Rome). Sedang mendapat perhatian sebagai alternatif untuk ESLint dan Prettier
  • Rekomendasi:
    • Gunakan kombinasi ESLint + Prettier
    • Pertimbangkan Biome sebagai alternatif baru

Autentikasi React

  • Lucia : solusi autentikasi yang mendukung OAuth dan fitur enkripsi
  • Better Auth : salah satu layanan autentikasi modern
  • Auth.js : library autentikasi yang mudah digunakan di Next.js dan berbagai framework
  • Layanan autentikasi berbayar: Clerk , Kinde
  • Autentikasi berbasis Firebase/Supabase: Supabase Auth
  • Layanan autentikasi lainnya: AuthKit , Auth0 , AWS Cognito
  • Rekomendasi:
    • Autentikasi yang mudah: Auth.js, Supabase Auth
    • OAuth dan fitur keamanan yang lebih kuat: Lucia, Better Auth

Backend React

  • Next.js : menyediakan server-side rendering (SSR) dan API route
  • Astro : framework yang cocok untuk membangun situs web statis
  • tRPC : solusi untuk komunikasi API yang type-safe
  • Hono : framework server super ringan yang dapat digunakan bersama React
  • Framework backend Node.js tradisional
    • Express : framework backend Node.js paling populer
    • Fastify : framework Node.js berperforma tinggi
    • NestJS : cocok untuk aplikasi berskala besar
    • Elysia : backend modern berbasis TypeScript
  • Framework backend lainnya
  • Rekomendasi:
    • Pengembangan React full-stack: Next.js, tRPC
    • Jika membutuhkan backend tradisional: Express, Fastify

Database dan ORM React

  • Prisma : ORM berbasis TypeScript paling populer
  • Drizzle ORM : ORM yang semakin diperhatikan sebagai alternatif Prisma
  • ORM dan query builder lainnya: Kysely , database-js : khusus untuk PlanetScale
  • Database serverless
  • Database berbasis Firebase/Supabase
  • Rekomendasi:
    • Jika membutuhkan ORM: Prisma, Drizzle ORM
    • Database serverless: PlanetScale, Neon

Hosting React

Library testing React

  • Vitest : framework testing yang lebih cepat daripada Jest dan dioptimalkan untuk proyek React modern. Menyediakan eksekusi test, assertion, dan fitur mocking
  • Jest : framework testing yang juga banyak digunakan pada proyek lama
  • React Testing Library (RTL)
    • library utama untuk menguji komponen React
    • menyediakan fitur rendering elemen HTML dan simulasi event
  • Playwright
    • alat testing E2E (End-to-End) yang paling direkomendasikan
    • mendukung pengujian otomatis di berbagai browser dan lingkungan perangkat
  • Cypress : alat testing E2E frontend yang bersaing dengan Playwright
  • Rekomendasi:
    • Test unit/integrasi: Vitest + React Testing Library
    • Test E2E: Playwright (atau Cypress)
    • Opsi snapshot testing: Vitest

React dan struktur data immutable

  • Immer :
    • library yang membantu menangani struktur data immutable dengan mudah
    • memungkinkan implementasi logika perubahan state yang kompleks secara ringkas

Dukungan multibahasa (i18n) untuk React

  • FormatJS : library i18n yang kuat, termasuk pemformatan tanggal, angka, mata uang, dan lainnya
  • react-i18next : library dukungan multibahasa yang paling luas digunakan di React
  • Lingui : menyediakan dukungan multibahasa yang kuat dengan konfigurasi minimal
  • next-intl : library multibahasa untuk proyek Next.js
  • Rekomendasi:
    • Pilihan paling umum: react-i18next
    • Proyek berbasis Next.js: next-intl

Editor rich text React

  • TipTap : editor rich text modern dengan ekstensibilitas tinggi
  • Plate : solusi editor canggih berbasis Slate.js
  • Lexical : editor rich text ringan buatan Facebook
  • Slate : framework editor rich text yang dapat dikustomisasi
  • Rekomendasi:
    • Jika membutuhkan ekstensibilitas yang fleksibel: TipTap
    • Editor yang ringan & teroptimasi: Lexical

Sistem pembayaran React

  • PayPal : salah satu sistem pembayaran yang paling banyak digunakan
  • Stripe : menyediakan API pembayaran yang ramah pengembang
  • Solusi pembayaran lainnya
  • Rekomendasi:
    • Solusi pembayaran yang simpel: Stripe
    • Jika butuh dukungan PayPal: PayPal atau Braintree

Penanganan waktu dan tanggal di React

  • date-fns : ringan tetapi menyediakan beragam fungsi tanggal/waktu
  • Day.js : alternatif ringan untuk Moment.js, dengan API yang serupa
  • Rekomendasi:
    • Library paling ringan: Day.js
    • Library dengan fitur lengkap: date-fns

Aplikasi desktop React

  • Electron :
    • framework pengembangan aplikasi desktop lintas platform
    • memungkinkan pembuatan aplikasi Windows, macOS, dan Linux dengan teknologi web (HTML, CSS, JS)
  • Tauri
    • alternatif yang lebih ringan daripada Electron dengan backend berbasis Rust
    • cocok untuk proyek yang mengutamakan keamanan dan performa
  • Rekomendasi:
    • Memanfaatkan teknologi web apa adanya: Electron
    • Ringan & keamanan lebih utama: Tauri

Upload file di React

  • react-dropzone : library berbasis React Hooks untuk upload file. Mendukung fitur drag-and-drop

Rendering email React

  • react-email (disarankan) : memungkinkan pembuatan email HTML responsif dengan memanfaatkan komponen React
  • mjml : bahasa markup untuk membuat email HTML dengan mudah
  • Mailing : membantu pengembang membuat dan mengelola email dengan mudah
  • jsx-email : memungkinkan pembuatan template email dengan sintaks JSX
  • Penyedia layanan email :
  • Rekomendasi:
    • Membuat email dengan gaya React: react-email
    • Jika membutuhkan layanan email: SendGrid, Mailgun

Drag-and-drop React

  • @hello-pangea/dnd : proyek penerus react-beautiful-dnd yang menawarkan cara penggunaan yang mudah
  • dnd kit : sangat fleksibel dan bisa dikustomisasi, tetapi memiliki learning curve
  • Rekomendasi:
    • Drag-and-drop yang mudah: @hello-pangea/dnd
    • Jika perlu kustomisasi: dnd kit

Pengembangan mobile React

  • React Native : framework pengembangan aplikasi mobile lintas platform berbasis React
  • Expo : toolchain yang membuat pengembangan React Native menjadi lebih mudah
  • Tamagui : mendukung penggunaan komponen UI yang sama di web dan mobile
  • Rekomendasi:
    • Pengembangan mobile: React Native + Expo
    • Menyatukan UI web dan mobile: Tamagui

Pengembangan React VR/AR

  • react-three-fiber : library rendering 3D berbasis Three.js. Ada contoh dukungan VR
  • react-360 (diarsipkan) : framework VR/AR yang dikembangkan Facebook (saat ini tidak lagi dipelihara)
  • aframe-react (tidak lagi dipelihara) : library yang memungkinkan penggunaan A-Frame di React
  • Rekomendasi:
    • Library React 3D/VR modern: react-three-fiber

Prototyping desain React

  • Figma : alat paling populer untuk desain dan prototyping UI/UX
  • Excalidraw : memungkinkan pembuatan wireframe dan diagram bergaya gambar tangan
  • tldraw : alat sketsa yang mirip dengan Excalidraw
  • Rekomendasi:
    • Desain UI/UX: Figma
    • Wireframe sederhana: Excalidraw

Dokumentasi komponen React

  • Storybook : alat paling representatif untuk pengembangan dan dokumentasi komponen UI
  • Docusaurus : generator situs statis untuk dokumentasi teknis
  • Styleguidist : alat dokumentasi style guide yang berfokus pada komponen React
  • React Cosmos : menyediakan lingkungan untuk mengembangkan dan menguji komponen UI secara terpisah
  • Rekomendasi:
    • Dokumentasi komponen: Storybook
    • Pembuatan dokumentasi teknis: Docusaurus

6 komentar

 
tmdeoans 2025-10-12

ssgoi.dev: library transisi halaman React

Akan sangat berterima kasih kalau ini juga ditambahkan, hehe..

 
clastneo 2025-03-04

Menurut saya, expo seharusnya dianggap sebagai framework untuk RN.

 
codemasterkimc 2025-03-04

Setahu saya, saat mencari di Google Trends, redux sekitar 90% dan zustand bahkan tidak sampai 10%, tapi zustand malah ada di atas ya wkwk

 
dooboo 2025-03-04

Kekuatan warisan, tentu saja.

Sebagai referensi, pangsa pasar jQuery adalah 90 persen...

 
xguru 2025-03-04
 
xguru 2025-03-04

Library yang direkomendasikan saat mengembangkan aplikasi dengan React per 2022

Sepertinya ini diperbarui setiap tahun, dan kali ini setelah 3 tahun. Akan bagus jika Anda membandingkannya.