React چیٹ شیٹ
قابلِ تلاش اور قابلِ پرنٹ React 19 حوالہ — کمپوننٹس، JSX، hooks، نئے Actions APIs، context، refs اور کارکردگی۔ مفت۔
Components & JSX
12function App() { return <h1>Hi</h1>; }
export default function App() {}
<Greeting name="Ada" />
{1 + 2} or {user.name}
<>{a}{b}</>
<div className="card">
{isOpen && <Menu />}
{ok ? <Yes /> : <No />}
{items.map(i => <li key={i.id}>{i.t}</li>)}
function Btn({ label, onClick }) {}
function Card({ children }) { return children; }
<input value={v} onChange={onChange} />
Rendering & setup
10import { createRoot } from 'react-dom/client'
createRoot(document.getElementById('root')).render(<App/>)
import { StrictMode } from 'react'
<StrictMode><App /></StrictMode>
import { hydrateRoot } from 'react-dom/client'
hydrateRoot(el, <App />)
root.unmount()
import App from './App.jsx'
<App {...props} />
export { Button, Card }
State & effects
12const [count, setCount] = useState(0)
setCount(c => c + 1)
setUser(u => ({ ...u, name }))
useEffect(() => { run(); }, [dep])
useEffect(() => { /* once */ }, [])
useEffect(() => () => cleanup(), [])
const ref = useRef(null)
const [state, dispatch] = useReducer(r, init)
const theme = useContext(ThemeContext)
const memo = useMemo(() => calc(a), [a])
useLayoutEffect(() => {}, [])
useSyncExternalStore(sub, get)
React 19 hooks & APIs
12import { use } from 'react'
const data = use(promise)
const theme = use(ThemeContext)
const [state, action, pending] = useActionState(fn, init)
const [opt, addOpt] = useOptimistic(state, reducer)
const { pending } = useFormStatus()
const [isPending, startTransition] = useTransition()
startTransition(async () => await save())
const deferred = useDeferredValue(value)
const id = useId()
<title>Page title</title>
function Input({ ref }) {}
Forms & Actions
12<form action={handleSubmit}>
function handleSubmit(formData) {}
formData.get('email')
const [state, action] = useActionState(submit, null)
<form action={action}>
const [s, a, pending] = useActionState(fn, init)
return { error: 'Invalid' }
function Submit() { const { pending } = useFormStatus() }
<button disabled={pending}>Save</button>
import { requestFormReset } from 'react-dom'
requestFormReset(formEl)
<form action={action}><Submit /></form>
Props & composition
10function Hi({ name = 'Guest' }) {}
function Box({ children }) { return children; }
<Box><p>Inside</p></Box>
function List({ render }) { return render(); }
<List render={() => <Item />} />
<Input {...props} />
const { id, ...rest } = props
<Avatar {...rest} size="lg" />
function Btn(props: BtnProps) {}
<Slot label={<b>Hi</b>} />
Events
10<button onClick={handleClick}>
function handleClick(e) {}
<input onChange={e => set(e.target.value)} />
<form onSubmit={e => e.preventDefault()}>
e.stopPropagation()
<li onClick={() => remove(id)}>
<input onKeyDown={e => e.key === 'Enter'}
<div onMouseEnter={hover}>
e.currentTarget.value
<button onClick={() => {}} type="button">
Lists & keys
10arr.map(x => <li key={x.id}>{x.t}</li>)
key={item.id}
key={index}
users.map(u => <Card key={u.id} {...u} />)
{list.length === 0 && <Empty />}
import { Fragment } from 'react'
<Fragment key={id}>{a}{b}</Fragment>
{rows.filter(r => r.on).map(...)}
Keys must be unique among siblings
{[...Array(n)].map((_, i) => ...)}
Context
10const ThemeContext = createContext('light')
import { createContext } from 'react'
<ThemeContext value={theme}>
<ThemeContext value={theme}><App /></ThemeContext>
const theme = useContext(ThemeContext)
const theme = use(ThemeContext)
if (cond) { const t = use(Ctx); }
export const ThemeContext = createContext()
<Ctx value={{ user, setUser }}>
Avoid new objects each render
Refs
10const inputRef = useRef(null)
<input ref={inputRef} />
inputRef.current.focus()
function Field({ ref }) { return <input ref={ref} /> }
<Field ref={inputRef} />
useImperativeHandle(ref, () => ({ focus }))
const setRef = node => { box = node; }
<div ref={setRef} />
const count = useRef(0)
ref={node => { return () => cleanup(); }}
Performance
10const Memo = memo(Component)
import { memo } from 'react'
const value = useMemo(() => calc(a), [a])
const fn = useCallback(() => f(a), [a])
const Lazy = lazy(() => import('./Big.jsx'))
import { lazy, Suspense } from 'react'
<Suspense fallback={<Spin />}><Lazy /></Suspense>
startTransition(() => setQuery(q))
const slow = useDeferredValue(query)
React Compiler auto-memoizes
Misc & metadata
10<Suspense fallback={<Loading />}>
class ErrorBoundary extends Component {}
<title>My Page</title>
<meta name="description" content="..." />
<link rel="stylesheet" href="..." />
<Comp key={id} />
React.lazy(() => import('./Page.jsx'))
createPortal(node, container)
{/* a comment */}
cleanup return in useEffect
کوئی اندراج “:q” سے میل نہیں کھاتا۔
React چیٹ شیٹ کے بارے میں
یہ React چیٹ شیٹ React 19 کے لیے ہے اور لائبریری کو تصورات کے حساب سے نقشہ بند کرتی ہے: کمپوننٹس اور JSX، رینڈرنگ اور سیٹ اپ، اسٹیٹ اور ایفیکٹس، React 19 کے hooks اور APIs، فارمز اور Actions، props اور کمپوزیشن، ایونٹس، فہرستیں اور keys، context، refs، پرفارمنس، اور میٹا ڈیٹا سمیت متفرقات۔
یہ ان بنیادی چیزوں کو کور کرتی ہے جو آپ ہر کمپوننٹ میں استعمال کرتے ہیں — useState، useEffect، props، keys، کنٹرولڈ ان پٹس — اور نئی React 19 اضافات، بشمول Actions پر مبنی فارم پیٹرنز، تاکہ یہ ایک ریفریشر اور موجودہ APIs کی طرف پل دونوں کے طور پر کام کرے۔
یہ شیٹ مفت ہے اور کلائنٹ سائیڈ پر چلتی ہے۔ سرچ باکس سے hooks اور پیٹرنز کو فوری فلٹر کریں، اسٹکی ٹیبل آف کنٹینٹس سے سیکشنز کے درمیان جائیں، ایک کلک سے کوئی بھی اسنپٹ کاپی کریں اور کمپوننٹس بناتے وقت حوالے کے لیے صفحہ پرنٹ کریں۔
React چیٹ شیٹ استعمال کرنے کا طریقہ
- سیکشنز پر ایک نظر ڈالیں، Components & JSX اور State & effects سے لے کر React 19 hooks & APIs اور Performance تک۔
- شیٹ کو فوری فلٹر کرنے کے لیے useEffect، key یا context جیسا کوئی hook یا تصور تلاش کریں۔
- کسی خاص پیٹرن کی ضرورت پڑنے پر اسٹکی سائیڈبار کے ذریعے Forms & Actions یا Refs پر جائیں۔
- کوڈ کو اپنے کمپوننٹ میں کاپی کرنے کے لیے کسی اسنپٹ یا اس کے کاپی آئیکن پر کلک کریں۔
- آف لائن React حوالے کے لیے شیٹ پرنٹ کریں۔