spinny:~/writing $ less mastering-react-server-components.md
12React Server Components (RSC) שינו באופן מהותי את הדרך שבה אנו בונים יישומי React. על ידי העברת לוגיקת הרנדור לשרת, אנו יכולים להקטין משמעותית את חבילת ה-JavaScript שנשלחת ללקוח. במאמר זה, נחקור דפוסים מתקדמים ושיטות עבודה מומלצות לניצול RSC ב-2026.34## מה הם Server Components?56**Server Components** מאפשרים לנו לרנדר רכיבים _אך ורק_ על השרת. הקוד שלהם לעולם אינו נשלח לדפדפן.78### היתרונות9101. **גודל חבילה אפסי**: תלויות המשמשות ב-Server Components נשארות על השרת.112. **גישה ישירה לבקאנד**: ניתן לבצע שאילתות למסד הנתונים ישירות בתוך הרכיב.123. **פיצול קוד אוטומטי**: רכיבי לקוח המיובאים בצד השרת מפוצלים אוטומטית.1314## דפוס שליפת נתונים1516```tsx17// app/users/page.tsx18import { db } from '@/lib/db';1920export default async function UsersPage() {21 const users = await db.user.findMany();2223 return (24 <main>25 <h1>Users</h1>26 <ul>27 {users.map((user) => (28 <li key={user.id}>{user.name}</li>29 ))}30 </ul>31 </main>32 );33}34```3536### Suspense ל-Streaming3738```tsx39import { Suspense } from 'react';40import UserList from './UserList';41import LoadingSkeleton from './LoadingSkeleton';4243export default function Page() {44 return (45 <section>46 <h1>My Users</h1>47 <Suspense fallback={<LoadingSkeleton />}>48 <UserList />49 </Suspense>50 </section>51 );52}53```5455## שילוב רכיבי Server ו-Client5657**כלל אצבע**: Server Components יכולים לייבא Client Components. Client Components _לא יכולים_ לייבא Server Components ישירות. אולם, ניתן להעביר Server Component כ-`children` ל-Client Component.5859### דפוס "Children"6061```tsx62// ClientComponent.tsx63'use client';6465import { useState } from 'react';6667export default function ClientWrapper({ children }) {68 const [count, setCount] = useState(0);6970 return (71 <div onClick={() => setCount((c) => c + 1)}>72 Count: {count}73 {children}74 </div>75 );76}77```7879```tsx80// ServerPage.tsx81import ClientWrapper from './ClientWrapper';82import ServerContent from './ServerContent';8384export default function Page() {85 return (86 <ClientWrapper>87 <ServerContent />88 </ClientWrapper>89 );90}91```9293## מלכודות נפוצות94951. **שימוש ב-Context ב-Server Components**: Context הוא מושג בצד הלקוח.962. **הוספת מטפלי אירועים**: לא ניתן להוסיף `onClick` או `onChange` ל-Server Component.9798## סיכום99100React Server Components הם לא רק פיצ'ר; הם שינוי פרדיגמה. על ידי הבנת הגבול בין שרת ללקוח, תוכלו לבנות יישומים שהם גם אינטראקטיביים מאוד וגם מהירים להפליא.101
:שליטה ב-React Server Components ב-2026lines 1-101 (END) — press q to close