@for(...)
פורסם בתאריך 1 בינואר 2024
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
החובה ימנע בעיות בביצועים - קל יותר לטפל במצב של מערך ריק