Angular
Angular представляє фреймворк для створення клієнтських додатків. Перш за все він націлений на розробку SPA-рішень (Single Page Application), тобто односторінкових додатків. В цьому плані Angular є спадкоємцем іншого фреймворка AngularJS. У той же час Angular це не нова версія AngularJS, а принципово новий фреймворк.
Спочатку переписаний AngularJS отримав назву Angular 2 від команди розробників, яка над ним працювала, але це призвело до плутанини серед інших розробників. Аби пояснити різницю між ними та наголосити, що це окремі проекти, команда вирішила для фреймворків версій 1.X застосовувати назву AngularJS, а для версій, починаючи з 2.0, — Angular без JS.
Основні відмінності між Angular та AngularJS
Архітектура додатка на Angular. Основними елементами в розробці є модулі, компоненти, шаблони, метадані, біндінг даних, директиви, сервіси та ін'єкції залежностей.
- Як згадано вище, Angular — це ретельно переписаний AngularJS.Додано Angular CLI, що дає змогу розпочати створення нового додатка, просто написавши командуng new [app name]
- Angular не використовує концепцію "області видимості" або контролерів, натомість як головну архітектурну концепцію він застосовує ієрархію компонентів
- Angular має інакший синтаксис написання виразів, застосовуючи"[ ]"для біндінгу даних властивостей, і "( )"для біндінгу даних івентів
- Модульність – значна частина основного функціоналу перенесена у модулі
- Angular рекомендує та застосовує розроблену Microsoft мову — TypeScript, що містить такі можливості, як:
- Класи, а отже Об'єктно-орієнтоване програмування
- Система типізації
- Узагальнене програмування
- TypeScript — надмножина ECMAScript 6 (ES6), і є зворотно сумісним зі стандартом ECMAScript 5 (тобто JavaScript).Angular також має такі ES6-можливості, як:
- Анонімні функції
- Ітератори
- Цикли типу For/Of
- Python-подібні генератори
- Рефлексія
- Динамічне завантаження
- Асинхронна компіляція шаблонів
- Заміна контролерів та$scope(області видимості) компонентами та директивами – компонент є директивою з шаблоном
- Ітеративні колбеки завдяки використанню RxJS. RxJS дещо обмежує видимість станів та можливості дебагінгу, але, застосовуючи такі плагіни, як ngReact та ngrx, це легко вирішується.