Если вы пойдете на конвенцию и спросите, использовал ли кто-нибудь Angular 1, вы обнаружите, что менее 50% имели опыт работы с фреймворком. Для сравнения, если вы спросите разработчиков Java или C#, вы обнаружите гораздо больше переходов на Angular 2 из-за его типизированного подхода. Инструменты важны, и Angular 2 кажется очень привлекательным для перехода.

Различия в синтаксисе между Angular 1 и 2 очевидны, но еще одно большое отличие заключается в том, что Angular 2 становится платформой приложений, а не просто фреймворком для написания браузерных приложений. Это означает, что код компонента Angular 2 отделен от фактической среды выполнения, что дает вам большую гибкость, поскольку код не обязательно привязан к конкретной среде (браузер, мобильное устройство, сервер, веб-воркер и т. д.).

Кажется, проще начать с Angular 2, если вы раньше не работали с Angular 1. Это кажется странным, особенно если учесть, что сделать его красивым и перенести его в облачный сервис стало намного проще по сравнению с разработкой в ​​Angular более года назад. Я предполагаю, что все сводится к тому, к чему вы привыкли.

Один вопрос, который в прошлом не был очень прозрачным: использует ли Google Angular для какого-либо из своих лучших продуктов, как Facebook использует React? React используется для интерфейса Instagram и Facebook.

Это важный показатель того, насколько целостны эти фреймворки. На данный момент они используют Angular только в своем Playstation YouTube Client, DoubleClick и Google Developers Console. Инженеры Google дали еще несколько идей на AngularConnect в Лондоне. Очевидно, AdWords перейдет на Angular 2, а также на Chromecast, Google Analytics и Youtube Video Manager, которые уже используют Angular 1.

Angular 2 очень хорошо вписывается в мир Микросервисов. Они становятся все более и более популярными, и многие предпочитают отказываться от подхода монолитной архитектуры.

Теперь Angular 2 предоставляет новый шаблон для выполнения асинхронных запросов, который называется Observables. Этот шаблон проектирования программного обеспечения позволяет автоматически уведомлять наблюдателей об изменениях состояния наблюдаемого субъекта.

Служба Http в Angular 2 является преемником службы $http в Angular 1. Вместо того, чтобы возвращать обещание, его метод http.get() возвращает объект Observable. Этот Observable дает нам такие методы, как map() для настройки обработки данных и subscribe() для наблюдения за выводом.

Много раз нам нужно загружать данные из более чем одного источника, и нам нужно отложить логику пост-загрузки до тех пор, пока все данные не будут загружены. ReactiveX Observables предоставляет метод forkJoin() для переноса нескольких Observables. Его метод subscribe() устанавливает обработчики для всего набора Observables.

Примером может быть заполнение плейлиста певцами и авторами песен. Может быть, есть сервис, который предоставляет и то, и другое, а может и нет. Пока это не важно. Вам нужны все возможные данные для песни из разных сервисов. Вот так,

Имейте в виду, что Observables — это новый стандарт для объекта http в Angular 2 с преимуществами по сравнению с Promises. Наблюдаемые объекты могут показаться расширением пары событий и обещаний. Ваше преимущество с ними в том, что вы не ограничены только одиночными операциями, как раньше с промисами.

Но если вам хочется использовать API на основе Promise вместо API на основе Observable, вы просто используете функцию Observable.toPromise(), чтобы превратить Observables в Promises после вызова метода объекта http. Чтобы увидеть очень хорошее сравнение промисов и наблюдаемых, прочитайте эту статью.

У наблюдаемых объектов плохая репутация, поскольку они могут вызывать каскадные обновления. Обновление одного наблюдаемого объекта может привести к тому, что множество других наблюдаемых объектов инициируют обновления, которые могут делать то же самое. В отличие от Angular 1.x, изменение происходит в одну сторону, и в результате система становится более производительной и предсказуемой.

Хороший способ начать — просмотреть документацию, которая в настоящее время доступна. Этот пост в блоге посвящен компонентам, представлениям, инъекциям, службам и привязкам. Еще одно интересное чтение — Обнаружение изменений в Angular 2. Углубленный обзор модуля обнаружения изменений, который обеспечивает привязку свойств Angular. Изучите Typescript и попробуйте. Мне это показалось очень удобным, и нет ощущения, что вы работаете с Angular в классическом смысле.