REACTJS DOCS
DASAR-JSX
Name
Description
Example
Output
JSX ExpressionDescription: Menyisipkan ekspresi JavaScript dalam JSX.
Example:
const name = 'Ridho'; return <h1>Hello, {name}</h1>Output: Hello, Ridho
JSX ExpressionMenyisipkan ekspresi JavaScript dalam JSX.
const name = 'Ridho'; return <h1>Hello, {name}</h1>Hello, Ridho
JSX AttributeDescription: Memberi atribut HTML/JSX (camelCase).
Example:
<img src={avatar} alt="User" className="avatar" />Output: Elemen <img>
JSX AttributeMemberi atribut HTML/JSX (camelCase).
<img src={avatar} alt="User" className="avatar" />Elemen <img>
Conditional RenderingDescription: Menggunakan ternary atau &&.
Example:
return <div>{isLoggedIn ? <Dashboard /> : <Login />}</div>Output: Komponen sesuai kondisi
Conditional RenderingMenggunakan ternary atau &&.
return <div>{isLoggedIn ? <Dashboard /> : <Login />}</div>Komponen sesuai kondisi
List RenderingDescription: Mapping array ke JSX dengan key.
Example:
users.map(user => <li key={user.id}>{user.name}</li>)Output: List <li>
List RenderingMapping array ke JSX dengan key.
users.map(user => <li key={user.id}>{user.name}</li>)List <li>
FragmentDescription: Mengelompokkan elemen tanpa node tambahan.
Example:
<><ChildA /><ChildB /></>
Output: Tanpa wrapper DOM
FragmentMengelompokkan elemen tanpa node tambahan.
<><ChildA /><ChildB /></>
Tanpa wrapper DOM
Comments in JSXDescription: Menulis komentar di dalam JSX.
Example:
{/* Ini komentar */}Output: Komentar
Comments in JSXMenulis komentar di dalam JSX.
{/* Ini komentar */}Komentar
KOMPONEN
Name
Description
Example
Output
Functional ComponentDescription: Komponen berbasis fungsi.
Example:
function Greeting({ name }) { return <h1>Halo {name}</h1>; }Output: Greeting
Functional ComponentKomponen berbasis fungsi.
function Greeting({ name }) { return <h1>Halo {name}</h1>; }Greeting
PropsDescription: Menerima data dari parent (read-only).
Example:
<User name="Ridho" age={25} />Output: name='Ridho', age=25
PropsMenerima data dari parent (read-only).
<User name="Ridho" age={25} />name='Ridho', age=25
Children PropDescription: Menerima konten di antara tag.
Example:
function Card({ children }) { return <div>{children}</div>; }Output: Membungkus konten
Children PropMenerima konten di antara tag.
function Card({ children }) { return <div>{children}</div>; }Membungkus konten
defaultProps (optional)Description: Nilai default properti (bisa juga destructuring default).
Example:
function Hello({ name = 'User' }) { return <p>Hello {name}</p>; }Output: Hello User
defaultProps (optional)Nilai default properti (bisa juga destructuring default).
function Hello({ name = 'User' }) { return <p>Hello {name}</p>; }Hello User
React.memoDescription: Mencegah render ulang jika props tidak berubah.
Example:
const MemoComp = React.memo(MyComponent);
Output: Komponen di-memo
React.memoMencegah render ulang jika props tidak berubah.
const MemoComp = React.memo(MyComponent);
Komponen di-memo
forwardRefDescription: Meneruskan ref ke komponen anak.
Example:
const Input = React.forwardRef((props, ref) => <input ref={ref} />)Output: Ref diteruskan
forwardRefMeneruskan ref ke komponen anak.
const Input = React.forwardRef((props, ref) => <input ref={ref} />)Ref diteruskan
lazyDescription: Lazy load komponen (code splitting).
Example:
const LazyComp = React.lazy(() => import('./Comp'));Output: Komponen lazy
lazyLazy load komponen (code splitting).
const LazyComp = React.lazy(() => import('./Comp'));Komponen lazy
SuspenseDescription: Menampilkan fallback saat lazy loading.
Example:
<Suspense fallback={<Loader />}><LazyComp /></Suspense>Output: Fallback muncul saat loading
SuspenseMenampilkan fallback saat lazy loading.
<Suspense fallback={<Loader />}><LazyComp /></Suspense>Fallback muncul saat loading
HOOKS-STATE
Name
Description
Example
Output
useStateDescription: State lokal komponen.
Example:
const [count, setCount] = useState(0);
Output: count=0
useStateState lokal komponen.
const [count, setCount] = useState(0);
count=0
useState (functional update)Description: Update berdasarkan state sebelumnya.
Example:
setCount(prev => prev + 1);
Output: count bertambah 1
useState (functional update)Update berdasarkan state sebelumnya.
setCount(prev => prev + 1);
count bertambah 1
useReducerDescription: State kompleks dengan reducer (Redux pattern).
Example:
const [state, dispatch] = useReducer(reducer, initialState);
Output: state, dispatch
useReducerState kompleks dengan reducer (Redux pattern).
const [state, dispatch] = useReducer(reducer, initialState);
state, dispatch
useOptimistic (React 19)Description: Update optimistik untuk UI interaktif.
Example:
const [optimisticMessages, addOptimistic] = useOptimistic(messages, (state, newMsg) => [...state, newMsg]);
Output: UI optimistik
useOptimistic (React 19)Update optimistik untuk UI interaktif.
const [optimisticMessages, addOptimistic] = useOptimistic(messages, (state, newMsg) => [...state, newMsg]);
UI optimistik
useActionState (React 19)Description: State untuk form action (sebelumnya useFormState).
Example:
const [state, formAction] = useActionState(action, initialState);
Output: State form action
useActionState (React 19)State untuk form action (sebelumnya useFormState).
const [state, formAction] = useActionState(action, initialState);
State form action
HOOKS-EFFECT
Name
Description
Example
Output
useEffectDescription: Efek samping setelah render (data fetching, subscription).
Example:
useEffect(() => { document.title = count; }, [count]);Output: Judul berubah
useEffectEfek samping setelah render (data fetching, subscription).
useEffect(() => { document.title = count; }, [count]);Judul berubah
useLayoutEffectDescription: Efek yang berjalan setelah DOM siap, sinkron.
Example:
useLayoutEffect(() => { measure(); }, []);Output: Diukur sebelum paint
useLayoutEffectEfek yang berjalan setelah DOM siap, sinkron.
useLayoutEffect(() => { measure(); }, []);Diukur sebelum paint
useInsertionEffect (React 18+)Description: Efek untuk CSS-in-JS styling, berjalan sebelum DOM mutations.
Example:
useInsertionEffect(() => { styleRef.current = document.createElement('style'); }, []);Output: Style diinjeksi lebih awal
useInsertionEffect (React 18+)Efek untuk CSS-in-JS styling, berjalan sebelum DOM mutations.
useInsertionEffect(() => { styleRef.current = document.createElement('style'); }, []);Style diinjeksi lebih awal
HOOKS-REF
Name
Description
Example
Output
useRefDescription: Ref yang mutable, tidak memicu render ulang.
Example:
const inputRef = useRef(null);
Output: Referensi input DOM
useRefRef yang mutable, tidak memicu render ulang.
const inputRef = useRef(null);
Referensi input DOM
useImperativeHandleDescription: Menentukan nilai yang diekspos oleh ref (dengan forwardRef).
Example:
useImperativeHandle(ref, () => ({ focus() { inputRef.current.focus() } }));Output: Ref kustom
useImperativeHandleMenentukan nilai yang diekspos oleh ref (dengan forwardRef).
useImperativeHandle(ref, () => ({ focus() { inputRef.current.focus() } }));Ref kustom
HOOKS-CONTEXT
Name
Description
Example
Output
useContextDescription: Mengkonsumsi context tanpa Consumer.
Example:
const theme = useContext(ThemeContext);
Output: Nilai context
useContextMengkonsumsi context tanpa Consumer.
const theme = useContext(ThemeContext);
Nilai context
createContextDescription: Membuat context object.
Example:
const ThemeContext = React.createContext('light');Output: Context
createContextMembuat context object.
const ThemeContext = React.createContext('light');Context
ProviderDescription: Menyediakan nilai context ke komponen anak.
Example:
<ThemeContext.Provider value="dark"><App /></ThemeContext.Provider>
Output: Anak mendapat value dark
ProviderMenyediakan nilai context ke komponen anak.
<ThemeContext.Provider value="dark"><App /></ThemeContext.Provider>
Anak mendapat value dark
HOOKS-PERFORMANCE
Name
Description
Example
Output
useMemoDescription: Memoize nilai (hanya hitung ulang jika dependency berubah).
Example:
const expensive = useMemo(() => compute(a, b), [a, b]);
Output: Nilai di-cache
useMemoMemoize nilai (hanya hitung ulang jika dependency berubah).
const expensive = useMemo(() => compute(a, b), [a, b]);
Nilai di-cache
useCallbackDescription: Memoize fungsi (menghindari rekreasi).
Example:
const handleClick = useCallback(() => { doSomething(a); }, [a]);Output: Fungsi stabil
useCallbackMemoize fungsi (menghindari rekreasi).
const handleClick = useCallback(() => { doSomething(a); }, [a]);Fungsi stabil
useTransition (React 18)Description: Menandai update state sebagai transisi non-urgent.
Example:
const [isPending, startTransition] = useTransition(); startTransition(() => { setQuery(next); });Output: UI tetap responsif
useTransition (React 18)Menandai update state sebagai transisi non-urgent.
const [isPending, startTransition] = useTransition(); startTransition(() => { setQuery(next); });UI tetap responsif
useDeferredValue (React 18)Description: Menunda pembaruan nilai hingga komputasi selesai.
Example:
const deferredQuery = useDeferredValue(query);
Output: Nilai tertunda
useDeferredValue (React 18)Menunda pembaruan nilai hingga komputasi selesai.
const deferredQuery = useDeferredValue(query);
Nilai tertunda
HOOKS-LAINNYA
Name
Description
Example
Output
useId (React 18)Description: ID unik untuk aksesibilitas (SSR/hydration aman).
Example:
const id = useId();
Output: :r0:
useId (React 18)ID unik untuk aksesibilitas (SSR/hydration aman).
const id = useId();
:r0:
useDebugValueDescription: Label untuk custom hook di React DevTools.
Example:
useDebugValue(isOnline ? 'Online' : 'Offline');
Output: Label DevTools
useDebugValueLabel untuk custom hook di React DevTools.
useDebugValue(isOnline ? 'Online' : 'Offline');
Label DevTools
useSyncExternalStore (React 18)Description: Subscribe ke store eksternal (Redux, Zustand).
Example:
const state = useSyncExternalStore(subscribe, getSnapshot);
Output: Data store
useSyncExternalStore (React 18)Subscribe ke store eksternal (Redux, Zustand).
const state = useSyncExternalStore(subscribe, getSnapshot);
Data store
useFormStatus (React 19)Description: Status form (pending) untuk komponen dalam <form>.
Example:
const { pending } = useFormStatus();Output: true/false
useFormStatus (React 19)Status form (pending) untuk komponen dalam <form>.
const { pending } = useFormStatus();true/false
use (React 19)Description: Membaca resource seperti Promise atau context di dalam komponen (tanpa hook rules ketat).
Example:
const data = use(fetchPromise);
Output: Data
use (React 19)Membaca resource seperti Promise atau context di dalam komponen (tanpa hook rules ketat).
const data = use(fetchPromise);
Data
EVENTS
Name
Description
Example
Output
onClickDescription: Handler klik.
Example:
<button onClick={() => alert('Hello')}>Klik</button>Output: Alert
onClickHandler klik.
<button onClick={() => alert('Hello')}>Klik</button>Alert
onChangeDescription: Handler perubahan input/select/textarea.
Example:
<input onChange={e => setName(e.target.value)} />Output: name terupdate
onChangeHandler perubahan input/select/textarea.
<input onChange={e => setName(e.target.value)} />name terupdate
onSubmitDescription: Handler submit form.
Example:
<form onSubmit={handleSubmit}>...</form>Output: Submit
onSubmitHandler submit form.
<form onSubmit={handleSubmit}>...</form>Submit
onKeyDownDescription: Handler keyboard press.
Example:
<input onKeyDown={e => e.key === 'Enter' && search()} />Output: Enter trigger search
onKeyDownHandler keyboard press.
<input onKeyDown={e => e.key === 'Enter' && search()} />Enter trigger search
preventDefaultDescription: Mencegah perilaku default event.
Example:
e.preventDefault();
Output: Aksi default dibatalkan
preventDefaultMencegah perilaku default event.
e.preventDefault();
Aksi default dibatalkan
stopPropagationDescription: Menghentikan propagasi event.
Example:
e.stopPropagation();
Output: Parent tidak menerima event
stopPropagationMenghentikan propagasi event.
e.stopPropagation();
Parent tidak menerima event
SyntheticEventDescription: React membungkus event asli (cross-browser).
Example:
onClick = (event: React.MouseEvent<HTMLButtonElement>) => {}Output: Event React
SyntheticEventReact membungkus event asli (cross-browser).
onClick = (event: React.MouseEvent<HTMLButtonElement>) => {}Event React
FORMULIR
Name
Description
Example
Output
Controlled ComponentDescription: Nilai input dikendalikan oleh state React.
Example:
<input value={name} onChange={e => setName(e.target.value)} />Output: Input terkontrol
Controlled ComponentNilai input dikendalikan oleh state React.
<input value={name} onChange={e => setName(e.target.value)} />Input terkontrol
Uncontrolled ComponentDescription: Nilai input diakses via ref (tidak di-state).
Example:
const inputRef = useRef(); <input ref={inputRef} />Output: inputRef.current.value
Uncontrolled ComponentNilai input diakses via ref (tidak di-state).
const inputRef = useRef(); <input ref={inputRef} />inputRef.current.value
Form Action (React 19)Description: Mengirim form menggunakan action (bisa server action).
Example:
<form action={async (formData) => { await save(formData); }}>Output: Submit server action
Form Action (React 19)Mengirim form menggunakan action (bisa server action).
<form action={async (formData) => { await save(formData); }}>Submit server action
SERVER-COMPONENTS
Name
Description
Example
Output
"use client"Description: Direktif untuk Client Component (interactive).
Example:
'use client'; function LikeButton() { ... }Output: Client Component
"use client"Direktif untuk Client Component (interactive).
'use client'; function LikeButton() { ... }Client Component
"use server"Description: Direktif untuk Server Action (mutasi data di server).
Example:
'use server'; async function deletePost(id) { ... }Output: Server Action
"use server"Direktif untuk Server Action (mutasi data di server).
'use server'; async function deletePost(id) { ... }Server Action
React Server ComponentDescription: Komponen yang dirender di server (tidak ada state/effect).
Example:
export default async function ServerComp() { const data = await fetch(...); return <div>{data}</div>; }Output: Rendered di server
React Server ComponentKomponen yang dirender di server (tidak ada state/effect).
export default async function ServerComp() { const data = await fetch(...); return <div>{data}</div>; }Rendered di server
RENDERING
Name
Description
Example
Output
createRoot (React 18)Description: Root untuk rendering aplikasi React.
Example:
import { createRoot } from 'react-dom/client'; createRoot(document.getElementById('root')).render(<App />);Output: App ter-render
createRoot (React 18)Root untuk rendering aplikasi React.
import { createRoot } from 'react-dom/client'; createRoot(document.getElementById('root')).render(<App />);App ter-render
hydrateRoot (React 18)Description: Hydrate aplikasi SSR.
Example:
hydrateRoot(document.getElementById('root'), <App />);Output: Aplikasi terhidrasi
hydrateRoot (React 18)Hydrate aplikasi SSR.
hydrateRoot(document.getElementById('root'), <App />);Aplikasi terhidrasi
StrictModeDescription: Membantu mendeteksi masalah dengan rendering ganda di development.
Example:
<StrictMode><App /></StrictMode>
Output: Double render dev
StrictModeMembantu mendeteksi masalah dengan rendering ganda di development.
<StrictMode><App /></StrictMode>
Double render dev
PORTAL
Name
Description
Example
Output
createPortalDescription: Merender komponen di luar hirarki DOM.
Example:
createPortal(<Modal />, document.getElementById('modal-root'));Output: Modal di luar root
createPortalMerender komponen di luar hirarki DOM.
createPortal(<Modal />, document.getElementById('modal-root'));Modal di luar root
LAINNYA
Name
Description
Example
Output
ProfilerDescription: Mengukur performa render.
Example:
<Profiler id="App" onRender={callback}><App /></Profiler>Output: Data performa
ProfilerMengukur performa render.
<Profiler id="App" onRender={callback}><App /></Profiler>Data performa
cloneElementDescription: Mengkloning elemen dengan props baru (jarang digunakan).
Example:
React.cloneElement(child, { newProp: true });Output: Elemen baru
cloneElementMengkloning elemen dengan props baru (jarang digunakan).
React.cloneElement(child, { newProp: true });Elemen baru
isValidElementDescription: Cek apakah sebuah objek adalah elemen React.
Example:
React.isValidElement(<div />);
Output: true
isValidElementCek apakah sebuah objek adalah elemen React.
React.isValidElement(<div />);
true
Children utilitiesDescription: Memanipulasi children (Children.map, toArray).
Example:
React.Children.map(children, child => cloneElement(child, { extra: true }));Output: Array child yang dimodifikasi
Children utilitiesMemanipulasi children (Children.map, toArray).
React.Children.map(children, child => cloneElement(child, { extra: true }));Array child yang dimodifikasi
CUSTOM-HOOKS
Name
Description
Example
Output
Custom HookDescription: Fungsi yang menggunakan hook lain (nama diawali use).
Example:
function useOnlineStatus() { const [online, setOnline] = useState(navigator.onLine); useEffect(() => { ... }, []); return online; }Output: Status online
Custom HookFungsi yang menggunakan hook lain (nama diawali use).
function useOnlineStatus() { const [online, setOnline] = useState(navigator.onLine); useEffect(() => { ... }, []); return online; }Status online
TESTING
Name
Description
Example
Output
act (from react-dom/test-utils)Description: Membungkus kode yang memicu update state agar test bisa menunggu selesai.
Example:
await act(async () => { render(<App />); });Output: Render selesai
act (from react-dom/test-utils)Membungkus kode yang memicu update state agar test bisa menunggu selesai.
await act(async () => { render(<App />); });Render selesai