מדריך Angular – מהו Pipe ומתי נבחר להשתמש בו?

מדריך Angular – מהו Pipe ומתי נבחר להשתמש בו?

במאמר הקודם למדנו על  ראוטינג (Routing) באפליקציית אנגולר, היום נעבור לנושא ה Pipes.

ה-Pipe באנגולר הוא מנגנון המאפשר עיבוד וטרנספורמציה של נתונים ישירות בתבניות (templates). ניתן להשתמש ב-Pipes לשינוי פורמט של תאריכים, מספרים, טקסטים ועוד. במאמר זה נעמיק בשימוש ב-Pipes, נבין כיצד ליצור Pipes מותאמים אישית ונראה דוגמאות פרקטיות.

הבנת Pipes באנגולר

Pipes הם בעצם פונקציות שמבצעות טרנספורמציה של נתונים ישירות ב-HTML של התבנית. לדוגמה, ניתן להשתמש ב-Pipe לעיגול מספר או לשינוי פורמט של תאריך.

שימוש ב-Pipe בסיסי

Angular מגיעה עם מספר Pipes מובנים כמו date, uppercase, lowercase, currency ועוד. הנה דוגמה לשימוש ב-Pipe לעיגול מספר:

<p> {{ 4.5678 | number:'1.0-2' }} </p>

התוצאה תהיה: 4.57

יצירת Pipe מותאם אישית

ניתן ליצור Pipe מותאם אישית אם יש צורך בפעולות מורכבות יותר שלא ניתנות למימוש עם ה-Pipes המובנים. לדוגמה, ניצור Pipe שממיר טקסט לאותיות ראשיות (Title Case).

תחילה, ניצור קובץ בשם `title-case.pipe.ts`:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'titleCase'
})
export class TitleCasePipe implements PipeTransform {
  transform(value: string): string {
    if (!value) return value;
    return value.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());
  }
}

שילוב Pipe בתבנית

כעת נוכל להשתמש ב-TitleCasePipe בתבנית שלנו:

<p> {{ 'hello world' | titleCase }} </p>

התוצאה תהיה: Hello World

שימוש ב-Pipe עם פרמטרים

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

<p> {{ today | date:'fullDate' }} </p>

התוצאה תהיה: Friday, January 1, 2021

בניית Pipe מורכב

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

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'circleArea'
})
export class CircleAreaPipe implements PipeTransform {
  transform(radius: number, pi: number = 3.14): number {
    return pi * Math.pow(radius, 2);
  }
}

שימוש ב-Pipe הזה בתבנית:

<p> {{ 5 | circleArea:3.14 }} </p>

התוצאה תהיה: 78.5

יתרונות השימוש ב-Pipes

– **פשטות וקריאות**: השימוש ב-Pipes הופך את הקוד לקריא ופשוט יותר.

– **חיסכון בזמן**: ה-Pipes מבצעים פעולות נפוצות בצורה מהירה ויעילה.

– **שימוש חוזר**: ניתן להשתמש באותם Pipes במקומות שונים באפליקציה.

מתי להשתמש ב-Pipe?

– כאשר יש צורך בטרנספורמציה של נתונים בתבנית.

– כאשר יש פעולות שחוזרות על עצמן וניתן לייעל אותן בעזרת Pipe.

– כאשר רוצים להפריד לוגיקה של טרנספורמציה מהלוגיקה של הקומפוננטה.

דוגמאות נוספות לשימוש ב-Pipes

פורמט מטבע

שימוש ב-CurrencyPipe לשינוי פורמט של מספר למטבע:

<p> {{ 1234.56 | currency:'USD' }} </p>

התוצאה תהיה: $1,234.56

טרנספורמציה למחרוזת

שימוש ב-UpperCasePipe להמרת טקסט לאותיות גדולות:

<p> {{ 'hello' | uppercase }} </p>

התוצאה תהיה: HELLO

סיכום

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

אם אתם מעוניינים ללמוד בצורה מעמיקה יותר אתם מוזמנים להתייעץ איתנו על קורס אנגולר.

במאמר הבא בסדרה נדבר על הבנת המנגנון Change Detection באנגולר.

שתפו את הפוסט

דילוג לתוכן