Angular (также известный как « Angular 2+ ») [4] — это бесплатный и открытый исходный код одностраничного веб-приложения на основе TypeScript . Он разработан Google и сообществом отдельных лиц и корпораций. Angular — это полностью переписанный проект той же команды, которая создала AngularJS . Экосистема Angular состоит из разнообразной группы из более чем 1,7 миллиона разработчиков, авторов библиотек и создателей контента. [5] Согласно опросу разработчиков Stack Overflow, Angular является одним из наиболее часто используемых веб-фреймворков. [6]
Google разработал Angular как полностью переписанный AngularJS. В отличие от AngularJS, Angular не имеет концепции «области действия» или контроллеров; вместо этого он использует иерархию компонентов в качестве своей основной архитектурной характеристики. [7] Angular имеет другой синтаксис выражений, фокусирующийся на "[ ]"
связывании свойств и "( )"
связывании событий . [8] Angular рекомендует использовать язык TypeScript от Microsoft , который вводит такие функции, как статическая типизация , обобщения и аннотации типов .
Angular использует архитектуру на основе компонентов , которая позволяет разработчикам создавать инкапсулированные, повторно используемые элементы пользовательского интерфейса. Каждый компонент инкапсулирует свой собственный HTML , CSS и TypeScript, что упрощает управление и тестирование отдельных частей приложения. [9]
Angular поддерживает двустороннюю привязку данных, которая синхронизирует данные между моделью и представлением. Это гарантирует, что любые изменения в представлении автоматически отражаются в модели и наоборот. [10]
Angular имеет встроенную систему внедрения зависимостей , которая упрощает управление и внедрение зависимостей в компоненты и сервисы. Это способствует модульности и более легкому тестированию. [11]
Angular расширяет HTML дополнительными атрибутами, называемыми директивами. Директивы предлагают функциональность для изменения поведения или внешнего вида элементов DOM . [12]
Angular включает маршрутизатор, который позволяет разработчикам определять и управлять состояниями приложений и путями навигации, что упрощает создание одностраничных приложений со сложной маршрутизацией. [13]
Angular CLI ( Command Line Interface ) предоставляет набор инструментов для создания, сборки, тестирования и развертывания приложений Angular. Он обеспечивает быструю настройку приложений и упрощает текущие задачи разработки. [14]
Angular имеет официальную поддержку рендеринга на стороне сервера, что улучшает время загрузки и производительность приложения. Рендеринг на стороне сервера также улучшает поисковую оптимизацию, делая контент более доступным для веб-краулеров. [15]
Angular 2.0 был анонсирован на конференции ng-Europe 22–23 октября 2014 года. [16] 30 апреля 2015 года разработчики Angular объявили, что Angular 2 перешел из стадии Alpha в стадию Developer Preview. [17] Angular 2 перешел в стадию Beta в декабре 2015 года, [18] а первый релиз-кандидат был опубликован в мае 2016 года. [19] Финальная версия была выпущена 14 сентября 2016 года.
В версии 8 Angular появился новый конвейер компиляции и рендеринга Ivy, а в версии 9 Angular Ivy был включен по умолчанию. В Angular 13 был удален устаревший прежний компилятор View Engine. [20]
Переписанный AngularJS был назван "Angular 2", но это привело к путанице среди разработчиков. Чтобы прояснить ситуацию, команда объявила, что для каждого фреймворка следует использовать отдельные имена, при этом " AngularJS " будет относиться к версиям 1.X, а "Angular" без "JS" — к версиям 2 и выше. [21]
Начиная с версии 9, команда Angular перевела все новые приложения на использование компилятора и среды выполнения Ivy. Они будут работать над Ivy, чтобы улучшить размеры выходных пакетов и скорость разработки. [35]
Ожидается, что каждая версия будет обратно совместима с предыдущей версией. Команда разработчиков Angular пообещала делать обновления дважды в год.
Все основные релизы поддерживаются в течение 18 месяцев. Это состоит из 6 месяцев активной поддержки, в течение которых регулярно выпускаются запланированные обновления и исправления. Затем следуют 12 месяцев долгосрочной поддержки (LTS), в течение которых выпускаются только критические исправления и исправления безопасности. [36]
Версии Angular v2–v15 больше не поддерживаются. [37]
Angular Material — это библиотека компонентов пользовательского интерфейса , реализующая Material Design в Angular. [38] Она предоставляет набор повторно используемых компонентов, которые соответствуют спецификациям Material Design от Google, стремясь предложить единообразный пользовательский интерфейс на разных устройствах и платформах.
Angular Material включает в себя множество компонентов пользовательского интерфейса, таких как кнопки, карточки, диалоги, сетки и элементы управления формами. Эти компоненты разработаны для настройки и легкой интеграции в приложения Angular. Дополнительные функции Angular Material включают поддержку адаптивного дизайна , тематизации и доступности.
В 2018 году в Angular 6 были представлены элементы Angular, позволяющие разработчикам упаковывать компоненты Angular в виде пользовательских веб-элементов, которые являются частью набора веб-компонентов API веб-платформы. [39]