בלוג

React use() ו-Suspense: זרימת נתונים ללא מפלים

שש כרטיסיות בדשבורד, שישה ספינרים, והן לא מופיעות יחד — הן מופיעות אחת אחת כמו דומינו, כי כל כרטיסייה התחילה לטעון רק אחרי שזו שמעליה סיימה. זהו מפל, והזמן הכולל להמתנה אינו הבקשה האיטית ביותר אלא סכום כולם. use() ו-Suspense שוברים את השרשרת — אבל המעניין הוא המנגנון הפנימי: מה קומפוננטה מושהית זורקת בפועל, וכיצד HTML שמגיע בסדר שגוי בכל זאת נוחת במקום הנכון.

View Transitions ו-Next.js: אנימציות דפים ללא ספרייה

עשר שנים, אנימציה של תמונה ממוזערת לתמונת הירו אמרה טכניקה אחת: מדוד לפני, מדוד אחרי, זייף את ההבדל עם transform ונגן. FLIP. כל ספריית אנימציות עושה זאת, וכל אחת משלמת על כך ב-JavaScript על ה-thread הראשי ברגע הגרוע ביותר האפשרי. View Transitions API מעביר את כל הטריק לדפדפן — ומאז React 19.2 ו-Next.js 16, כל החוזה מורכב מ-prop אחד בשם name.

Server Actions ב-Next.js: טופס שעובד עוד לפני שה-JavaScript נטען

‏'use server' נראה כמו סוכר תחבירי מעל fetch ל-API route – ובדיוק בגלל זה רוב היישומים מתייחסים אליו כאל קריאת פונקציה רגילה. זו טעות עם השלכות קונקרטיות: כל פונקציה שמסומנת ב-'use server' הופכת לנקודת קצה ציבורית ברשת, וטופס שנבנה על המנגנון הזה עובד אפילו לפני שה-JavaScript מספיק להיטען. בודק מה באמת קורה מתחת להוראה הזו, והיכן טמונות המלכודות שלא נראות בתיעוד ממבט ראשון.

יצירת רכיבים נגישים לקוראי מסך

HTML תקין הוא רק נקודת ההתחלה. גלו איך עץ הנגישות עובד בפועל, מדוע ARIA לעיתים קרובות עושה יותר נזק מתועלת ממה שנדמה, ובנו איתי אקורדיון אמיתי, אזור חי (live region) וניהול פוקוס ב-Next.js.