יישום עצלות לאנז בתגובה עקבו אחרי PerformanceGets

הבנה של Lazy Loading in React Native

React Native הפך למסגרת לפיתוח סלולרי חוצה פלטפורמות, המאפשר למפתחים לבנות יישומים ברמה המקומית עם JavaScript ותגובה. כמו סולם יישומים, צווארי בקבוק ביצועים לעתים קרובות להופיע - במיוחד במהלך העומס הראשוני.אחת האסטרטגיות היעילות ביותר כדי להקטין את הבעיות הללו הוא FLT:0lazy טעינה טעינה FLT:1 טכניקה זו מרעבת מרכיבים, נכסים עד שהם באמת צריכים, לבדוק את דפוסי ה-FLT של ה-Tate העמוקים, תוך כדי עיבוד התמונה המתקדמת, ו-הההקצבהההההההההה של הנקה, תוך כדי הדפסה של ה-FLT:1.

מה זה Lazy Loading?

טעינה Lazy היא דפוס עיצוב שדוחקת את ההתחלתיזציה של אובייקט, רכיב או משאב עד הנקודה שבה הוא נדרש. בהקשר של React Native, זה אומר כי מסך או רכיב אינו טעון וניתן עד המשתמש לנווט אליו או את הנראות שלו הופך להיות קרוב.

ב-React Native, טעינה עצלנית מבוצעת בדרך כלל באמצעות יבוא דינמי באמצעות ייבוא:0 (FLT:0) ו- (FLT:1), או באמצעות פתרונות ספציפיים בספריה כגון FLT:0) ניווט לניווט עצלן:1 עבור טעינה עצלנית ברמת המסך.

היתרונות של טעינה Lazy בתגובה אינדיאני

אימוץ טעינה עצלנית מניב מגוון רחב של שיפורים בביצועים:

  1. (FLT:0) ,Reduced הראשונית בגודל החבילה 1FLT) - פיצול קוד מאפשר לחבילת JavaScript להישבר לחלקים קטנים יותר עמוסים בביקוש.זה קריטי כי יישומים ילידים לשלוח חבילה אחת של JavaScript שיש לסווג ולבצע בהשקה.
  2. (ב) [ה]הזמן של ה-[[1924]] ל[[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]
  3. (ב) (ב) ,0) עדיף סוללה חיים של סוללת חיים (FLT:1) - משאבים לא עמוסים, צמצום השימוש ב- CPU וסוללת שמירה.
  4. (ב) ⁇ (ב"ג) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

בעוד היתרונות האלה הם אוניברסליים, טעינה עצלנית היא בעלת ערך מיוחד עבור יישומים עם מסכים רבים, תרשימים מורכבים, מדיה עשירה או ערכות צד שלישי.

יישום Lazy לטעון עם תגובה.lazy ו Suspense

תגובה Native תומכת ב-FLT:2 ו-FLT:3 מאז גרסה 0.62.עם זאת, יש ניואנסים בהשוואה ל- React עבור האינטרנט.

הגדרה בסיסית

ראשית, ודא שאתה משתמש בגרסת React Native תואמת (>=0.62) וכי ה-packr שלך (Metro) מוגדר לתמיכה בייבוא דינמי. מטרו תומך בייבוא דינמי מחוץ לתיבת הדואר מאז גרסה 0.59.

שלב 1 - Lazy לטעון חסיד

יצירת מרכיב כבד, למשל, תרשים מורכב או רשימה גדולה, וייבוא אותו באמצעות ההרחבה "FLT:4:

(ב) 5)

שלב 2 - אונס עם סוספנס

לספק את UI בעוד הרכיב טעון:

מערת תגובה אינדיאני

באינטרנט, (FLT 7) עובד בצורה חלקה עם React.lazy. in React Native, ⁇ 8 זמין אבל לא כל סוגי הרכיבים עובד באופן מושלם בתוך זה - במיוחד רכיבים או רכיבים המבוססים על FLT:9 עבור תופעות לוואי.תמיד לבדוק את הרכיבים העצלים שלך על מכשירים אמיתיים.

טכניקות טעינה נזי

צילום מסך: Low Lazy Loading with React

המקרה הנפוץ ביותר עבור טעינה עצלנית באפליקציות סלולריות הוא טעינת מסך מופרכת.המדריך לניווט, ספריית הניווט דה פקטו, תומך דפוס זה מתוך הקופסה באמצעות ה-FLT:10 prop ודינמיקה fLT:11.

דוגמה ל- React ניווט 6:

ניתן לייעל עוד באמצעות שימוש ב-FLT:0 (prefetchingph1): כאשר משתמש מרחף מעל הכרטיסיה או מנווט למסך, באפשרותך להתחיל לטעון את המסך הבא מראש באמצעות שימוש ב-FLT:13 או ידני (FLT:14).

תמונות נזילות

(ב) תמונות של ה[[המאה ה-20]] הן [[המאה ה-20]], [[1924]], [[1924]], [[1924]]]], [[1924]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]

דוגמה עם FlatList לטעון עצלות שורות גלויות רק:

(ב) [15]

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

קוד התפצל עם React.lazy ו- React Navigation Screens

עבור יישומים גדולים, אתה יכול גם לפצל את החבילה JavaScript למסך באמצעות React.lazy בשילוב עם הפונקציה של React ניווט 20 של תגובה מ-V5 עם זאת, שים לב כי תגובה ניווט V6 משתמש במרכיב ישירות, כך שתוכל לעטוף אותו עם עצלן כפי שמוצג לעיל.

Best Practices for Lazy Loading in React Native

מלכודות נפוצות וכיצד להימנע מהם

המונחים: Over-Lazy Loading

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

המונחים: Lazy Loading in Transitions

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

לא טעויות מתפתלות

יבוא דינמי יכול להיכשל בשל בעיות רשת או אריזות שחיתות. השתמש ב-FLT:25 כדי לתפוס שגיאות ב- Suspense Fallback:

[22: 24]

התנהגות בלתי עקבית בפלטפורמות

iOS ואנדרואיד יכולים להתמודד עם מבחן שונה (FLT:27) ב- Always test on Bothפלטפורמות.

מדד ביצועים ובדיקה

לפני שפורשים טעינה עצלנית, לקבוע מדדים בסיסיים באמצעות כלים כגון FLT:0 (React Native Performance MonitorigtureFLT:1 (זמין באמצעות תפריט המפתח), FLT:2FlipperFLT 3: 3, או FLT:4React DevtoolsFLT:5 Track:

לאחר יישום, re-measure to לכמת את השיפורים.באפליקציות רבות בעולם האמיתי של React Native (למשל, FLT:0Shopify's AppveFLT:1), טעינה עצלה הפחיתה את זמן הסטארט-אפ במעל 40%.

משאבים חיצוניים וקריאה נוספת

מסקנה

טעינה Lazy אינה כדור כסף, אבל כאשר מיושם נכון, זה אחד הכלים החזקים ביותר ב ערכת הביצועים של React Native Developer. על ידי דחיית טעינה של רכיבים לא חיוניים, תמונות ומסכים, אתה יכול לחתוך באופן דרמטי את זמני העומס הראשוני, להפחית את לחץ הזיכרון, ולספק חוויית משי-smooth למשתמש שלך.התחל עם העבריינים הכבדים ביותר באפליקציות שלך - לעתים רחוקות יותר, להרגיש עצלן, לאט יותר, לחץ דם מורכב יותר, לאט לאט לאט לאט לאט לאט לאט לאט לאט לאט לאט לאט לאט יותר, כדי לספק עצלן, לחץ זיכרון, או עצלן, לחץ, או עצלן, עם עצלן, 000.