ביצועים כברירת מחדל עם Next.js

‏Next.js מטפל באופטימיזציות רבות באפליקציית React, כדי שלא תצטרכו לעשות זאת בעצמכם

Next.js היא מסגרת React מקובצת, שכוללת כמה אופטימיזציות של ביצועים. הרעיון המרכזי מאחורי ה-framework הוא להבטיח שאפליקציות יתחילו לפעול וימשיכו להיות יניבו ביצועים טובים ככל האפשר, באמצעות היכולות האלה ייכללו כברירת מחדל.

במסגרת ההקדמה הזו נסקור בקצרה הרבה מהתכונות של המסגרת ברמה גבוהה. במדריכים האחרים באוסף הזה נסביר על התכונות בפירוט רב יותר.

מה תלמדו?

ב-Next.js יש כמה פעולות אופטימיזציה של הביצועים כברירת מחדל, אבל המדריכים האלה נועדו להסביר אותן בפירוט רב יותר ולהראות איך אפשר להשתמש בהן כדי ליצור חוויה מהירה ויעילה.

יש הרבה שיטות אופטימיזציה שאפשר להוסיף לאתרים של React באופן כללי, שיעבדו גם לאפליקציות שנוצרו באמצעות Next.js. לא ייעשה בהם שימוש כי המיקוד הוא על מה ש-Next.js מספק באופן ספציפי. למידע נוסף על אופטימיזציה כללית של תגובות, כדאי לעיין באוסף React.

מה ההבדל בין Next.js ל-React?

React היא ספרייה שמאפשרת ליצור ממשקי משתמש בקלות רבה יותר באמצעות גישה שמבוססת על רכיבים. React היא ספרייה חזקה במיוחד לממשק משתמש. מפתחים רבים כוללים כלי נוסף, כמו חבילה של מודולים (למשל webpack) וטרנספילר (למשל Babel), כדי ליצור ערכת כלים מלאה ל-build.

באוסף React, השתמשנו ב-Create React App (CRA) כדי להפעיל במהירות אפליקציות React. בעזרת CRA תוכלו להימנע מהטרחה של הגדרת אפליקציית React, כי הוא מספק כלי עבודה מלא ל-build באמצעות פקודה אחת.

למרות שיש כמה אופטימיזציות ברירת מחדל של CRA, הכלי נועד לספק הגדרה פשוטה וישירה. המפתחים יכולים להחליט אם להוציא ולשנות את ההגדרות בעצמם.

ב-Next.js, שאפשר להשתמש בו גם כדי ליצור אפליקציית React חדשה, יש גישה שונה. באופן מיידי אפשר לבצע כמה אופטימיזציות נפוצות שמפתחים רבים רוצים לבצע, אבל קשה להגדיר אותן, למשל:

  • רינדור בצד השרת
  • פיצול קוד אוטומטי
  • אחזור מראש של מסלולים
  • ניתוב במערכת קבצים
  • עיצוב CSS-in-JS (styled-jsx)

בתהליך הגדרה

כדי ליצור אפליקציית Next.js חדשה, מריצים את הפקודה הבאה:

npx create-next-app new-app

לאחר מכן עוברים לספרייה ומפעילים את שרת הפיתוח:

cd new-app
npm run dev

בהטמעה הבאה מוצג מבנה הספריות של אפליקציית Next.js חדשה.

  • לוחצים על Remix to Edit כדי לאפשר עריכה של הפרויקט.
  • כדי לראות תצוגה מקדימה של האתר, לוחצים על View App (הצגת האפליקציה) ואז על Fullscreen מסך מלא (מסך מלא).

שימו לב שנוצרת ספרייה pages/ עם קובץ יחיד: index.jsx. ב-Next.js נעשה שימוש בגישה של ניתוב במערכת קבצים, שבה כל דף בספרייה הזו מוצג כמסלול נפרד. יצירת קובץ חדש בספרייה הזו, כמו about.js, תיצור באופן אוטומטי מסלול חדש (/about).

אפשר גם ליצור רכיבים ולהשתמש בהם כמו בכל אפליקציית React אחרת. כבר נוצרה ספרייה components/ עם רכיב יחיד, nav.js, שכבר יובא ל-index.js. כברירת מחדל, כל ייבוא שנעשה בו שימוש ב-Next.js מאוחזר רק כשהדף נטען, וכך נהנים מהיתרונות של חלוקה אוטומטית של קוד.

בנוסף, כל טעינת דף ראשונית ב-Next.js עוברת עיבוד בצד השרת. אם פותחים את חלונית הרשת בכלי הפיתוח, אפשר לראות שהבקשה הראשונית למסמך מחזירה דף שעבר עיבוד מלא בשרת.

בכרטיסייה 'תצוגה מקדימה' בחלונית 'רשת' מוצג ש-Next.js מחזיר HTML מלא מבחינה חזותית כשנשלחת בקשה להצגת דף.
בכרטיסייה 'תצוגה מקדימה' בחלונית 'רשת' מוצג ש-Next.js מחזיר קוד HTML מלא מבחינה חזותית כשמבקשים דף.

אלה רק כמה מהתכונות הרבות ש-Next.js מספק באופן אוטומטי. אפשר להתאים אישית הרבה מהן ולשנות אותן בהתאם לתרחישים לדוגמה שונים.

מה השלב הבא?

התכוונתי למשחק המילים 😛

בכל מדריך אחר באוסף הזה נסביר בפירוט על תכונה ספציפית של Next.js: