Jump to content

Angular (web framework)

From Wikipedia, the free encyclopedia
Angular
Developer(s)Google
Initial release2.0 / 14 September 2016; 8 years ago (2016-09-14)[1]
Stable release
19.0.5[2] Edit this on Wikidata / 18 December 2024; 4 days ago (18 December 2024)
Preview release
19.0.0-next.0 / 14 August 2024; 4 months ago (2024-08-14)[3]
RepositoryAngular Repository
Written inTypeScript, JavaScript
PlatformWeb platform
TypeWeb framework
LicenseMIT License
Websiteangular.dev

Angular (also referred to as Angular 2+)[4] is a TypeScript-based free and open-source single-page web application framework. It is developed by Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS. The Angular ecosystem consists of a diverse group of over 1.7 million developers, library authors, and content creators.[5] According to the Stack Overflow Developer Survey, Angular is one of the most commonly used web frameworks.[6]

Differences between Angular and AngularJS

[edit]
Architecture of an Angular application, services, and dependency injection

Google designed Angular as a ground-up rewrite of AngularJS. Unlike AngularJS, Angular does not have a concept of "scope" or controllers; instead, it uses a hierarchy of components as its primary architectural characteristic.[7] Angular has a different expression syntax, focusing on "[ ]" for property binding, and "( )" for event binding.[8] Angular recommends the use of Microsoft's TypeScript language, which introduces features such as static typing, generics, and type annotations.

Features

[edit]

Component-based architecture

[edit]

Angular uses a component-based architecture, which allows developers to build encapsulated, reusable user interface elements. Each component encapsulates its own HTML, CSS, and TypeScript, making it easier to manage and test individual pieces of an application.[9]

Data binding

[edit]

Angular supports two-way data binding, which synchronizes data between the model and the view. This ensures that any changes in the view are automatically reflected in the model and vice versa.[10]

Dependency injection

[edit]

Angular has a built-in dependency injection system that makes it easier to manage and inject dependencies into components and services. This promotes modularity and easier testing.[11]

Directives

[edit]

Angular extends HTML with additional attributes called directives. Directives offer functionality to change the behavior or appearance of DOM elements.[12]

Routing

[edit]

Angular includes a router that allows developers to define and manage application states and navigation paths, making it easier to build single-page applications with complex routing.[13]

Angular CLI

[edit]

The Angular CLI (Command Line Interface) provides a set of tools for creating, building, testing, and deploying Angular applications. It enables rapid application setup and simplifies ongoing development tasks.[14]

Server-side rendering

[edit]

Angular has official support for server-side rendering, which improves an application's load time and performance. Server-side rendering also enhances search engine optimization by making content more accessible to web crawlers.[15]

History

[edit]

Angular 2.0 was announced at the ng-Europe conference 22–23 October 2014.[16] On April 30, 2015, the Angular developers announced that Angular 2 moved from Alpha to Developer Preview.[17] Angular 2 moved to Beta in December 2015,[18] and the first release candidate was published in May 2016.[19] The final version was released on 14 September 2016.

Version 8 of Angular introduced a new compilation and rendering pipeline, Ivy, and version 9 of Angular enabled Ivy by default. Angular 13 removed the deprecated former compiler, View Engine.[20] The Angular Renaissance started on June 2, 2022 with the release of v14, when the transformation towards de-emphasizing the use of modules in favor of a more modern and streamlined approach to application structure.

Naming

[edit]

The rewrite of AngularJS was called "Angular 2", but this led to confusion among developers. To clarify, the team announced that separate names should be used for each framework with "AngularJS" referring to the 1.X versions and "Angular" without the "JS" referring to versions 2 and up.[21]

Version history

[edit]
Version Release date New features
Current stable version: Angular 19 November 19, 2024 Angular directives, components and pipes are now standalone by default.[22]
Old version, yet still maintained: Angular 18 May 22, 2024 Experimental zoneless change detection support and server-side rendering improvements.[23]
Old version, yet still maintained: Angular 17 November 8, 2023[24] Standalone is now the new default for the CLI (Application builder), without the need for Angular modules (NgModule), a new syntax for control flow and documentation website.[24]
Old version, no longer maintained: Angular 16 3 May 2023 Partial hydration for Angular Universal server-side rendering, experimental Jest support, and esbuild-based build system for development servers.
Old version, no longer maintained: Angular 15 November 18, 2022 Standalone APIs, directive composition API.[25]
Old version, no longer maintained: Angular 14 2 June 2022 Typed forms, standalone components, and new primitives in the Angular CDK (component dev kit).[26] The Angular Renaissance started with the release of v14.
Old version, no longer maintained: Angular 13 4 November 2021[27] Removed deprecated View Engine renderer.
Old version, no longer maintained: Angular 12 12 May 2021[28] Deprecated support for Internet Explorer 11.
Old version, no longer maintained: Angular 11 11 November 2020[29] Experimental Webpack 5 support
Old version, no longer maintained: Angular 10 24 June 2020[30] New Date Range Picker (Material UI library).
Old version, no longer maintained: Angular 9 6 February 2020 Improved build times, enabling AOT on by default
Old version, no longer maintained: Angular 8 28 May 2019 Differential loading for all application code, Dynamic imports for lazy routes, Web workers, TypeScript 3.4 support, and Angular Ivy as an opt-in preview.[31]
Old version, no longer maintained: Angular 7 18 October 2018 Updates regarding Application Performance, Angular Material & CDK, Virtual Scrolling, Improved Accessibility of Selects. Support for Content Projection using web standard for custom elements, and dependency updates regarding Typescript 3.1, RxJS 6.3 and Node.js 10.[32]
Old version, no longer maintained: Angular 6 4 May 2018[33] Experimental custom element support, added ng update command
Old version, no longer maintained: Angular 5 1 November 2017[34] Support for progressive web apps, a build optimizer and improvements related to Material Design.[35]
Old version, no longer maintained: Angular 4.3 18 July 2017 HttpClient for making HTTP requests, conditionally disabling animations, new router life cycle events for Guards and Resolvers.

Minor release, meaning that it contains no breaking changes and that it is a drop-in replacement for Angular 4.x.x.

Old version, no longer maintained: Angular 4 23 March 2017[36] Added ngIf and ngFor. Backward compatible with Angular 2.
Old version, no longer maintained: Angular 2 14 September 2016 Initial release

Future releases

[edit]

Since v9, the Angular team has moved all new applications to use the Ivy compiler and runtime. They will be working on Ivy to improve output bundle sizes and development speeds.[37]

Each version is expected to be backward-compatible with the prior release. The Angular development team has pledged to do twice-a-year upgrades.

Support policy and schedule

[edit]

All the major releases are supported for 18 months. This consists of 6 months of active support, during which regularly-scheduled updates and patches are released. It is then followed by 12 months of long-term support (LTS), during which only critical fixes and security patches are released.[38]

Supported Angular Versions
Version Status Released Active Ends LTS Ends Duration
^18.0.0 Active May 22, 2024 Nov 22, 2024 Nov 22, 2025 1.5 years
^17.0.0 LTS Nov 08, 2023 May 8, 2024 May 15, 2025 1.5 years
^16.0.0 LTS May 3, 2023 Nov 08, 2023 Nov 08, 2024 1.5 years

Angular versions v2 to v15 are no longer under support.[39]

Libraries

[edit]

Angular Material

[edit]

Angular Material is a UI component library that implements Material Design in Angular.[40] It provides a collection of reusable components that adhere to Google's Material Design specifications, aiming to offer a consistent user interface across different devices and platforms.

Angular Material includes a variety of UI components such as buttons, cards, dialogs, grids, and form controls. These components are designed to be customizable and easy to integrate into Angular applications. Additional features of Angular Material include support for responsive design, theming, and accessibility.

Angular Elements

[edit]

In 2018, Angular 6 introduced Angular Elements, enabling developers to package Angular components as custom web elements, which are part of the web components set of web platform APIs.[41]

See also

[edit]

References

[edit]
  1. ^ "Angular, version 2: proprioception-reinforcement". blogspot.com. September 14, 2016. Archived from the original on 2017-03-12. Retrieved 2017-03-18.
  2. ^ "Release 19.0.5". 18 December 2024. Retrieved 21 December 2024.
  3. ^ "angular/CHANGELOG.md". GitHub. Retrieved 2024-08-14.
  4. ^ "AngularJS and Angular 2+: a Detailed Comparison". 6 April 2018.
  5. ^ "Angular". angular.io. Retrieved 2024-03-26.
  6. ^ "Stack Overflow Developer Survey 2023". Stack Overflow. Retrieved 2024-06-02.
  7. ^ "Angular Docs". angular.io.
  8. ^ "What's the difference between AngularJS and Angular?". gorrion.io. September 19, 2017. Retrieved 2018-01-28.
  9. ^ "Composing with Components · Angular". angular.dev. Retrieved 2024-06-02.
  10. ^ "Understanding binding · Angular". angular.dev. Retrieved 2024-06-02.
  11. ^ "Dependency injection in Angular". angular.dev. Retrieved 2024-06-02.
  12. ^ "Directives · Overview · Angular". angular.dev. Retrieved 2024-06-02.
  13. ^ "Routing · Overview · Angular". angular.dev. Retrieved 2024-06-02.
  14. ^ "Angular CLI · Overview · Angular". angular.dev. Retrieved 2024-06-02.
  15. ^ Żurawski, Paweł (2024-05-09). "Angular SSR: Your server-side rendering implementation guide". Pretius. Retrieved 2024-07-17.
  16. ^ "Ng-Europe schedule". Archived from the original on 2018-04-30. Retrieved 2018-04-29.
  17. ^ @angularjs (30 Apr 2015). "Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest" (Tweet). Retrieved 2015-10-21 – via Twitter.
  18. ^ "Angular: Angular 2 Beta". angularjs.blogspot.it. Archived from the original on 2015-12-18. Retrieved 2016-07-13.
  19. ^ "angular/angular". GitHub. Retrieved 2016-05-04.
  20. ^ Thompson, Mark (2021-11-04). "Angular v13 is now Available". Angular Blog. Retrieved 2024-06-02.
  21. ^ "Angular: Branding Guidelines for AngularJS". Archived from the original on 2017-02-04. Retrieved 2017-03-04.
  22. ^ Gechev, Minko (2024-05-23). "Meet Angular v19". Medium. Retrieved 2024-06-02.
  23. ^ Gechev, Minko (2024-05-23). "Angular v18 is now available!". Medium. Retrieved 2024-06-02.
  24. ^ a b Gechev, Minko (8 November 2023). "Introducing Angular v17". Medium. Angular Blog. Retrieved 12 November 2023.
  25. ^ Gechev, Minko (2022-11-21). "Angular v15 is now available!". Angular Blog. Retrieved 2024-06-02.
  26. ^ Twersky, Emma (2022-06-03). "Angular v14 is now available!". Angular Blog. Retrieved 2022-06-03.
  27. ^ Thompson, Mark (4 November 2021). "Angular v13 is now Available". Angular Blog. Retrieved 10 January 2022.
  28. ^ Thompson, Mark (2021-05-12). "Angular v12 is now available". Medium. Retrieved 2021-05-17.
  29. ^ "Version 11 of Angular Now Available". 4 December 2020.
  30. ^ "Version 10 of Angular Now Available". 25 June 2020.
  31. ^ Fluin, Stephen (2019-02-08). "A plan for version 8.0 and Ivy". Angular Blog. Retrieved 2019-06-07.
  32. ^ Fluin, Stephen (2018-10-18). "Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more". Angular Blog. Retrieved 2019-06-07.
  33. ^ "Version 6.0.0 of Angular Now Available". Retrieved 4 May 2018.
  34. ^ Fluin, Stephen. "Version 5.0.0 of Angular Now Available". Retrieved 2 November 2017.
  35. ^ "Angular 5 JavaScript framework delayed". 18 September 2017.
  36. ^ "Angular 4.0.0 Now Available". angularjs.blogspot.ca. Archived from the original on 2018-01-08. Retrieved 2017-03-23.
  37. ^ Fluin, Stephen (6 February 2020). "Version 9 of Angular Now Available — Project Ivy has arrived!". blog.angular.io. Retrieved 22 March 2022.
  38. ^ "Angular". angular.io. Retrieved 2019-06-07.
  39. ^ "Angular". angular.io. Retrieved 2022-06-10.
  40. ^ "Angular Material". material.angular.io.
  41. ^ "How to create Angular 6 Custom Elements and Web Components". 29 September 2018.
[edit]