WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
AngularJS
Тип фреймворк, библиотека JavaScript, библиотека функций и язык программирования
Разработчик Brat Tech LLC, Google Inc. и сообщество
Написана на JavaScript[1]
Первый выпуск 2009
Последняя версия
Состояние Актуален
Лицензия лицензия MIT[3][4]
Сайт angularjs.org
 AngularJS на Викискладе

AngularJS — JavaScript-фреймворк с открытым исходным кодом. Предназначен для разработки одностраничных приложений[5]. Его цель — расширение браузерных приложений на основе MVC-шаблона, а также упрощение тестирования и разработки.

Фреймворк работает с HTML, содержащим дополнительные пользовательские атрибуты, которые описываются директивами, и связывает ввод или вывод области страницы с моделью, представляющей собой обычные переменные JavaScript. Значения этих переменных задаются вручную или извлекаются из статических или динамических JSON-данных.

История разработки

AngularJS разработан в 2009 году Мишко Хевери и Адамом Абронсом в Brat Tech LLC как программное обеспечение позади сервиса хранения JSON-данных, измеряющихся мегабайтами, для облегчения разработки корпоративных приложений. Сервис располагался на домене «GetAngular.com» и имел нескольких зарегистрированных пользователей, прежде чем они решили отказаться от идеи бизнеса и выпустить Angular как библиотеку с открытым исходным кодом.

Абронс покинул проект, но Хевери, работающий в Google, продолжает развивать и поддерживать библиотеку с другими сотрудниками Google Игорем Минаром и Войта Джином.

В марте 2014 было объявлено о начале разработки AngularJS 2.0[6]. Новая версия писалась с нуля на TypeScript и очень сильно отличалась от предыдущей, поэтому позже было решено развивать её как отдельный фреймворк с названием Angular. Angular 2 был выпущен 15 сентября 2016 года[7], тогда как первая версия продолжила развиваться отдельно как AngularJS.

Философия Angular

AngularJS спроектирован с убеждением, что декларативное программирование лучше всего подходит для построения пользовательских интерфейсов и описания программных компонентов[8], в то время как императивное программирование отлично подходит для описания бизнес-логики[9]. Фреймворк адаптирует и расширяет традиционный HTML, чтобы обеспечить двустороннюю привязку данных для динамического контента, что позволяет автоматически синхронизировать модель и представление. В результате AngularJS уменьшает роль DOM-манипуляций и улучшает тестируемость.

Цели разработки

  • Отделение DOM-манипуляции от логики приложения, что улучшает тестируемость кода.
  • Отношение к тестированию как к важной части разработки. Сложность тестирования напрямую зависит от структурированности кода.[10][11]
  • Разделение клиентской и серверной стороны, что позволяет вести разработку параллельно.
  • Проведение разработчика через весь путь создания приложения: от проектирования пользовательского интерфейса, через написание бизнес-логики, к тестированию.

Angular придерживается MVC-шаблона проектирования и поощряет слабую связь между представлением, данными и логикой компонентов. Используя внедрение зависимости, Angular переносит на клиентскую сторону такие классические серверные службы, как видозависимые контроллеры. Следовательно, уменьшается нагрузка на сервер и веб-приложение становится легче.

Популярные встроенные Angular-директивы

С помощью директив AngularJS можно создавать пользовательские HTML-теги и атрибуты, чтобы добавить поведение некоторым элементам.[12]

ng-app
Объявляет элемент корневым для приложения.[13]
ng-bind
Автоматически заменяет текст HTML-элемента на значение переданного выражения.
ng-model
То же, что и ng-bind, только обеспечивает двустороннее связывание данных.[14] Изменится содержимое элемента — ангуляр изменит и значение модели. Изменится значение модели — ангуляр изменит текст внутри элемента.
ng-class
Определяет классы для динамической загрузки.
ng-controller
Определяет JavaScript-контроллер для вычисления HTML-выражений в соответствии с MVC.[15]
ng-repeat
Создает экземпляр DOM для каждого элемента из коллекции.[16]
ng-show и ng-hide
Показывает или скрывает элемент, в зависимости от значения логического выражения.
ng-switch
Создаёт экземпляр шаблона из множества вариантов, в зависимости от значения выражения.
ng-view
Базовая директива, отвечает за обработку маршрутов[17], которые принимают JSON перед отображением шаблонов, управляемых указанными контроллерами.
ng-if
Удаляет или создаёт часть DOM-дерева в зависимости от значения выражения. Если значение выражения, назначенного ngIf, равно false, элемент удаляется из DOM, иначе — вновь клонированный элемент вставляется в DOM.[18]

Также существует возможность создавать настраиваемые директивы, используя в том числе шаблоны в теге script.[19][20]

Двустороннее связывание данных

Двустороннее связывание данных в AngularJS является наиболее примечательной особенностью, и уменьшает количество кода, освобождая сервер от работы с шаблонами. Вместо этого, шаблоны отображаются как обычный HTML, наполненный данными, содержащимися в области видимости, определённой в модели. Сервис $scope в Angular следит за изменениями в модели и изменяет раздел HTML-выражения в представлении через контроллер. Кроме того, любые изменения в представлении отражаются в модели. Это позволяет обойти необходимость манипулирования DOM и облегчает инициализацию и прототипирование веб-приложений[21].

Плагин для Chrome

В июле 2012 года команда Angular выпустила плагин для браузера Google Chrome под названием Batarang[22], который облегчает отладку веб-приложений, построенных на Angular. Расширение позволяет легко обнаруживать узкие места и предлагает графический интерфейс для отладки приложений[23].

Версии

Последняя стабильная на данный момент версия AngularJS — 1.7.6, выпущенная в январе 2019 года[24].

Сравнение с Backbone.js

Похожими возможностями обладает Backbone.js — JavaScript-библиотека, основанная на шаблоне проектирования Model-View-Presenter (MVP), предназначена для разработки веб-приложений с поддержкой RESTful JSON интерфейса. Backbone — очень лёгкая библиотека (упакованная и gzip-сжатая по величине ~6.3 Кб), но для работы необходима библиотека Underscore.js, а для поддержки REST API и работы с DOM элементами рекомендуется подключить jQuery-подобную библиотеку: jQuery или Zepto. Backbone.js создан Джереми Ашкенасом, который известен также как создатель CoffeeScript.

Однако, есть и существенные различия:

Связывание данных
Наиболее характерной особенностью, которая разделяет библиотеки, является способ синхронизации модели и представления. В то время как AngularJS поддерживает двустороннее связывание данных, Backbone.js, чтобы связать модель и представление, в значительной мере опирается на шаблонный код[25].
REST
Backbone.js хорошо поддерживает RESTful-бэкэнд. В AngularJS также очень легко работать с RESTful API при помощи сервиса $resource. В то же время в AngularJS есть более гибкий сервис $http, который подключается к удаленным серверам с помощью браузерного объекта XMLHttpRequest или через JSONP[26].
Шаблоны
В качестве шаблона AngularJS использует комбинацию настраиваемых HTML-тегов и выражений[27]. Backbone.js использует различные шаблонизаторы, такие как Underscore.js[25].

См. также

Примечания

  1. The angularjs Open Source Project on Open Hub: Languages Page — 2006.
  2. Release 1.7.6 — 2019.
  3. https://github.com/angular/angular.js/blob/master/LICENSE
  4. The angularjs Open Source Project on Open Hub: Licenses Page — 2006.
  5. Single Page Application using AngularJs. Tutorial
  6. AngularJS 2.0
  7. Angular, version 2: proprioception-reinforcement. angularjs.blogspot.ru. Проверено 13 октября 2016.
  8. Understanding Components
  9. What Is Angular?. Проверено 12 февраля 2013. Архивировано 20 мая 2013 года.
  10. Unit Testing
  11. E2E Testing
  12. Пишем простую директиву
  13. ngApp
  14. Data Binding
  15. https://docs.angularjs.org/api/ng/directive/ngController
  16. ngRepeat — directive in module ng
  17. Component Router
  18. ngIf Angular docs
  19. Учебник AngularJS: всеобъемлющее руководство. Часть 2. (Настраиваемые директивы).
  20. Шаблоны в директивах
  21. 5 Awesome AngularJS Features. Проверено 13 февраля 2013. Архивировано 20 мая 2013 года.
  22. Batarang homepage
  23. AngularJS: Introducing the AngularJS Batarang
  24. Перечень всех версий AngularJS и выпущенных в них изменений (англ.)
  25. 1 2 Backbonejs vs Angularjs: Demystifying the myths. Проверено 13 февраля 2013. Архивировано 20 мая 2013 года.
  26. Javascript Frameworks And Data Binding. Проверено 13 февраля 2013. Архивировано 20 мая 2013 года.
  27. script directive in module ng

Литература

  • Brad Green, Shyam Seshadri. AngularJS. — O'Reilly Media, 2013. — 196 p. ISBN 978-1449344856.
  • Lukas Ruebbelke with Brian Ford. AngularJS in Action. — Manning Publications, 2015. ISBN 9781617291333.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии