Angular

בפיתוח תוכנה, אנגולר (באנגלית: Angular, מכונה גם "Angular 2+") היא תוכנה חופשית וקוד פתוח המשמשת כתשתית תוכנה ליישומי רשת, ומבוססת על שפת TypeScript. היא מתוחזקת על ידי גוגל ועל ידי קהילה רחבה של מפתחים. אנגולר נכתבה מאפס על ידי אותו צוות מפתחים בגוגל שפיתח את AngularJS (אנ'), תשתית תוכנה ליישומי רשת שהתבססה על שפת JavaScript. התשתית מיועדת לפיתוח יישומי דף-יחיד, ופישוט הפיתוח והבדיקות של יישומים אלו, באמצעות תשתית תוכנה לארכיטקטורות צד לקוח כמו MVC או MVVM, יחד עם רכיבים בהם משתמשים בדרך כלל ביישומי אינטרנט עשירים. השכתוב של "AngularJS" נקרא "Angular 2", אך זה גרם לבלבול בקרב מתכנתים. לשם בהירות, הצוות הודיע ששמות נפרדים ישמשו לכל אחד מהפריימוורקים, כאשר "AngularJS" מתייחס לגרסאות 1.X ואילו "Angular" בלי "JS" מתייחס לגרסאות 2 ומעלה. אנגולר 2.0 הוכרז בוועידת ng-Europe באוקטובר 2014. השינויים הדרסטיים בגרסה זו עוררו מחלוקת בקרב קהילת המפתחים. ב-30 באפריל 2015, צוות הפיתוח של אנגולר הכריז שאנגולר 2 עברה מגרסת אלפא לגרסת תצוגה מקדימה למפתחים. בדצמבר 2015 עברה הגרסה לבטא, וגרסה מועמדת להפצה פורסמה במאי 2016. הגרסה הסופית שוחררה ב-14 בספטמבר 2016. ב-13 בדצמבר 2016 הוכרזה גרסה 4, על מספר 3 דילגו כדי למנוע בלבול סביב חוסר הסנכרון בין הגרסה של חבילת הניתוב שכבר הופצה כ-v3.3.0.‏ הגרסה הסופית יצאה ב-23 במרץ 2017. אנגולר 4 היא בעלת תאימות לאחור לאנגולר 2. גרסה 4.3 היא גרסה משנית, מה שאומר שהיא לא מכילה שינויים שוברים ושהיא נועדה להחליף את הגרסאות 4.x.x שקדמו לה. תכונות חדשות בגרסה 4.3: "HttpClient" - ספרייה קטנה יותר, קלה לשימוש ורבת יכולות לביצוע קריאות HTTP. ארבעה איוונטים חדשים במחזור חיי הניתוב: GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd. השבתה של הנפשות בהתאם לתנאים. אנגולר 5 יצא ב-1 בנובמבר 2017. שיפורים עיקריים באנגולר 5 כוללים תמיכה באפליקציות רשת פרוגרסיביות, אופטימייזר לבניית תוכנה ושיפורים הקשורים למטריאל דיזיין (שפת העיצוב המשתמשת את אנגולר). אנגולר 6 יצא ב-4 במאי 2018. הגרסה מתמקדת פחות בשלד התוכנה עצמו ויותר בארגז הכלים הנלווה וביכולת לזוז מהר יותר בעתיד, ובכלל זה בכלים: ng update, ng add, Angular Elements, Angular Material + CDK, Angular Material Starter Components, CLI Workspaces, Library Support, Tree Shakable Providers, Animations Performance Improvements, ו-RxJS v6. אנגולר 7 יצא ב-18 באוקטובר 2018 והכיל עדכונים הקשורים לביצועי האפליקציות, Angular Material + CDK, Virtual Scrolling, נגישות משופרת באלמנט לבחירה מרשימה, תמיכה בהקרנת תוכן (Content Projection), עדכוני תלויות עבור Typescript 3.1, RxJS 6.3, Node 10 (אך עדיין תומך ב-Node 8). אנגולר 8 יצא ב-28 במאי 2019 והכיל: טעינה דיפרנציאלית עבור כל הקוד של האפליקציה, ייבוא דינמי עבור נתיבים, וורקרים, תמיכה ב-TypeScript 3.4, וגרסת תצוגה מקדימה של מנוע הרינדור Angular Ivy, שמגיע כבוי בברירת מחדל. התצוגה המקדימה של Angular Ivy כללה: ייצור קוד שקל יותר לקרוא ולדבג בזמן ריצה קיצור זמן בנייה מחדש שיפור בנפח התעבורה בדיקה משופרת של טיפוסים בתבנית תאימות לאחור אנגולר 9 יצא ב-6 בפברואר 2020. גרסה 9 מעבירה את כל האפליקציות לשימוש במנוע Ivy להידור והרצה בברירת מחדל. אנגולר עודכן לעבוד עם גרסאות 3.6 ו-3.7 של TypeScript. בנוסף למאות תיקוני באגים, מהדר Ivy מציע יתרונות רבים: חבילות קוד קטנות יותר הרצת בדיקות מהירה יותר ניפוי שגיאות מהיר יותר קישור משופר של קלאסים ועיצוב ב-CSS בדיקת טיפוסים משופרת שגיאות בנייה משופרות שיפור זמני בנייה, הפעלת בנייה לפני ריצה בברירת מחדל (Ahead of time - AOT) לוקליזציה משופרת אנגולר 10 יצא ב-24 ביוני 2020. וידג'ט חדש לבחירת טווח תאריכים (בספריית Material UI) אזהרות על ייבוא של CommonJS הגדרות אפשריות קשיחות יותר הגדרת תצורה חדשה לדפדפן ברירת מחדל הסרה של קוד ישן אנגולר 11 יצא ב-11 בנובמבר 2020. אנגולר 12 יצא ב-12 במאי 2021. הופסקה התמיכה בדפדפן Internet Explorer 11. גרסה 13 יצאה ב-4 בנובמבר 2021. גרסה 14 יצאה ב-2 ביוני 2022. בין התכונות החדשות: טפסים עם הגדרות טיפוסים, קומפוננטות עצמאיות. גרסה 15 יצאה ב-16 בנובמבר 2022. בין התכונות החדשות: ממשקי API עצמאיים יציבים, המאפשרים למפתחי Angular לבנות אפליקציות ללא מודולי Ng. ניפוי באגים טוב יותר ושימוש חוזר בקוד. גרסה 16 יצאה ב-3 במאי 2023. היא כוללת תכונות חדשות כגון הידרציה חלקית לרינדור צד השרת (SSR) של Angular Universal, תמיכה ניסיונית ב-Jest, מערכת בנייה מבוססת בנייה לשרתי פיתוח, תמיכה בפרויקטים עצמאיים (standalone) שינוי של הLife-cycle, ללא צורך לרנדר את כל הדף מחדש במקרה של שינוי נקודתי. יכולת פעולה הדדית טובה יותר עם RxJS, ועוד. בקובץ ה-app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app works'; } ובקובץ ה-app.component.html <div> <h1 class="color" *ngIf="title">{{title}}</h1> <h1 class="color" *ngIf="!title">הכותרת אם המשתנה לא מוגדר</h1> </div> ובקובץ ה-app.component.css .color{ color: red; background-color: #eee; width: 100%; text-align: center; } גוגל תכננה את אנגולר כשכתוב מאפס של AngularJS. באנגולר לא קיים הרעיון של תחום הכרזה או קונטרולרים; תחת זאת הוא עושה שימוש בהיררכיה של קומפוננטות כמאפיין הארכיטקטוני העיקרי שלו. באנגולר יש תחביר שונה, סוגריים רבועים "[ ]" משמשים לקישור משתנים, "( )" משמש להאזנה לאירועים. מודולריות - הרבה מהפונקציונליות העיקרית עברה למודולים. אנגולר מתעדפת שימוש בשפת התכנות TypeScript, שכוללת את התכונות הבאות: מערכת טיפוסים סטטית, כולל תמיכה בתכנות גנרי. סימון טיפוסים על ידי הוספת תו : (נקודתיים) ולאחריו שם הטיפוס. טעינה דינמית. הידור תבניות אסינכרוני. קולבקים איטרטיביים באמצעות RxJS. תמיכה בהרצת אפליקציות אנגולר בשרתים. AngularJS (אנ') MVC JSON Backbone.js (אנ') jQuery MEAN (תשתיות תוכנה) React מדיה וקבצים בנושא Angular בוויקישיתוף אתר האינטרנט הרשמי של Angular (באנגלית) Angular, ברשת החברתית אקס (טוויטר) Angular, סרטונים בערוץ היוטיוב What is Angular, angular.io "Angular: Branding Guidelines for AngularJS". נבדק ב-2017-03-04. Coman Hamilton (28 באוקטובר 2014). "A sneak peek at the radically new Angular 2.0". נבדק ב-2015-10-21. {{cite web}}: (עזרה) "Ng-Europe schedule". Coman Hamilton (29 באוקטובר 2014). "Angular 2.0 announcement backfires". נבדק ב-2015-10-21. {{cite web}}: (עזרה) @angularjs. "Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest" (Tweet). נבדק ב-2015-10-21 – via Twitter. "Angular: Angular 2 Beta". angularjs.blogspot.it. נבדק ב-2016-07-13. "angular/angular". GitHub. נבדק ב-2016-05-04. "Ok... let me explain: it's going to be Angular 4.0". angularjs.blogspot.kr. נבדק ב-2016-12-14. "Angular 4.0.0 Now Available". angularjs.blogspot.ca. נבדק ב-2017-03-23. "Angular 4 coming in 2017, to be backwards compatible with Angular 2". react-etc.net. נבדק ב-2016-12-14. Fluin, Stephen. "Version 5.0.0 of Angular Now Available". נבדק ב-2 בנובמבר 2017. {{cite web}}: (עזרה) "Angular 5 JavaScript framework delayed". 18 בספטמבר 2017. {{cite web}}: (עזרה) "Version 6.0.0 of Angular Now Available". נבדק ב-4 במאי 2018. {{cite web}}: (עזרה) Fluin, Stephen (2018-10-18). "Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more". Angular Blog. נבדק ב-2019-06-07. Fluin, Stephen (2019-02-08). "A plan for version 8.0 and Ivy". Angular Blog. נבדק ב-2019-06-07. "Version 10 of Angular Now Available". 25 ביוני 2020. {{cite web}}: (עזרה) "Version 11 of Angular Now Available". 4 בדצמבר 2020. {{cite web}}: (עזרה) Thompson, Mark (2021-05-12). "Angular v12 is now available". Medium (באנגלית). נבדק ב-2021-05-17. Thompson, Mark. "Angular v13 is now Available". Angular Blog. נבדק ב-10 בינואר 2022. {{cite web}}: (עזרה) "Angular Docs". angular.io. "What's the difference between AngularJS and Angular?". gorrion.io. 19 בספטמבר 2017. נבדק ב-2018-01-28. {{cite web}}: (עזרה)