@for(...)
This video explains the new @for control flow syntax in Angular 17, highlighting its advantages over the traditional *ngFor directive, with practical examples and best practices.
הסינטקס החדש של @for שניתן להשתמש בו כדי להחליף את *ngFor זמין מ-Angular 17.
הסינטקס החדש הוא הרבה יותר נקי וקל לקריאה וכתיב, וגם עוצמתי יותר.
בואו נסתכל על הדוגמה הבאה ונפרק את התכונות והיתרונות העיקריים של הסינטקס החדש.
בסינטקס החדש של @for חובה לספק את הפרמטר track. על פי התיעוד של Angular, הרבה בעיות בביצועים של אפליקציות Angular נגרמו מלולאות *ngFor ללא trackBy, עכשיו הפרמטר track הוא חובה עם סינטקס פשוט יותר.
כעת ניתן בקלות לבחור Property מהאובייקט, ואנגולר ישתמש בו כדי לעקוב אחרי שינויים במערך.
ניתן גם להשתמש במשתנה הקונטקסט $index כדי לעקוב לפי אינדקס, אבל עדיף להשתמש במפתח ראשי באובייקט ולהשתמש בזה כערך ל track.
בלוק ריק
Section titled “בלוק ריק”אחרי הבלוק של @for ניתן להוסיף בלוק של @empty שיתבצע כאשר המערך ריק.
לפני הסינטקס החדש היינו צריכים להשתמש ב-*ngIf כדי לבדוק אם המערך ריק, ואז להציג את הבלוק הריק.
משתנים בקונטקסט
Section titled “משתנים בקונטקסט”המשתנים בקונטקסט שהיו זמינים ב-*ngFor זמינים גם ב-@for:
- $index- האינדקס של האיבר הנוכחי במערך
- $first-- trueאם האיבר הנוכחי הוא הראשון במערך
- $last-- trueאם האיבר הנוכחי הוא האחרון במערך
- $even-- trueאם האינדקס של האיבר הנוכחי הוא זוגי
- $odd-- trueאם האינדקס של האיבר הנוכחי הוא אי-זוגי
מומלץ להפסיק להשתמש ב-*ngFor ולהשתמש בסינטקס החדש של @for. ישנם כמה יתרונות לשימוש בסינטקס החדש של @for:
- קל יותר להבין את הבלוק של @for
- קל יותר לספק track
- ה- trackהחובה ימנע בעיות בביצועים
- קל יותר לטפל במצב של מערך ריק