AngularJS 2.0 радикально отличается


Команда AngularJS дала представление о будущем фреймворка, и многие программисты считают это неприемлемым. Практически полный разрыв с прошлым означает, что многие работают над проектами, в которых используется устаревшая структура без возможности обновления.

AngularJS от Google — один из самых популярных фреймворков пользовательского интерфейса, который используется во многих проектах. Так что новость о том, что в следующей версии будут внесены радикальные изменения, не поддерживающие обратную совместимость, многие не будут приветствовать — «Это шутка?» это типичный комментарий.

На первоначальной презентации даже было заявлено, что не будет пути миграции с Angular 1.X на 2.0, но из-за гневного ответа программистов, опасавшихся, что их приложения вот-вот устареют, команда Angular опубликовала сообщение в блоге, в котором смягчает это и всю его позицию по новой версии:

«Наша цель с Angular 2 — создать наилучший возможный набор инструментов для создания веб-приложений, не ограниченных поддержанием обратной совместимости с существующими API. Как только у нас будет начальная версия Angular 2, мы начнем работать над путем миграции для Приложения Angular 1 «.

Первый большой шок — это принятие самых последних версий JavaScript и браузеров. Angular 2.0 построен с использованием ES6, который, конечно же, на данный момент фактически не существует и должен быть доработан до конца года. Angular 2.0 разрабатывается с использованием компилятора Traceur, другого проекта Google, который компилирует ES6 в ES5. Это означает, что до тех пор, пока ES6 не станет широко доступным, вы можете работать с ES5, если хотите, но на будущее гораздо лучше спланировать использование ES6.

Еще более радикальным является то, что Angular 2 представит AtScript как расширение необязательной типизации TypeScript. В этом случае вам не нужно его использовать, потому что он обязательно должен быть скомпилирован для ES6 / 5.

Другое большое изменение заключается в том, что фреймворк будет нацелен только на «вечнозеленые» браузеры, то есть на те, которые соответствуют веб-стандартам — Chrome, Firefox, Opera, Safari и IE, — но только на последние версии. Это будет означать, что старые версии IE и стандартный браузер Android могут не работать.

AngularJS 2 также будет поддерживать и использовать веб-компоненты — технологию, которая не была готова к использованию, когда Angular был впервые разработан.

Если этого было недостаточно, чтобы вас беспокоить, меняется и базовая структура фреймворка. Единая компонентная модель избавится от контроллера и шаблонов и обеспечит более простой, но другой способ работы. Синтаксис меняется, чтобы сделать вещи более последовательными — круглые скобки для вызова функций, квадратные скобки для атрибутов, чтобы дать только два примера.

Чтобы предоставить некоторые детали, команда Angular приводит пример шаблона 1.3:

{{todo.title}}

который следует сравнить с шаблоном версии 2.0

{{Todo.title}}

Вы можете видеть, что для изменения синтаксиса потребуется нечто большее, чем просто поиск и замена.

Цель изменений — сделать Angular более быстрым и логичным. Например, от использования jqLite отказались в пользу прямого взаимодействия с DOM, который теперь считается достаточно стандартным, чтобы не требовать оберток, снижающих производительность. Кроме того, вся структура будет модульной, что позволит загружать только то, что вы хотите использовать.

Вы можете увидеть презентацию на ng-europe 2014, которая подняла весь шум, в следующем видео:

Кажется, предстоит многому научиться, чтобы смириться с новым Angular. Большинство изменений кажутся хорошими идеями. Если бы вы начали заново, то их способ, которым вы бы это сделали, был бы ближе к Angular 2, чем к исходному фреймворку, но именно на это жалуются критики. Говорят, это новый фреймворк, у которого просто украли имя Angular!

Существует также хорошо известный эффект преждевременного закрытия текущей версии путем предварительного объявления новой версии. AngularJS 2.0 вряд ли будет использоваться до конца следующего года — но вы бы начали новый проект AngularJS, пока он не станет доступен? Даже здесь, в I Programmer, эффект заключался в том, чтобы отменить набор руководств по Angular, потому что в чем смысл, если вы переписываете и, что более важно, реорганизуете, чтобы учесть что-то настолько отличное.

Ключевым моментом является то, что независимо от того, насколько лучше AngularJS 2.0, его влияние заключается в том, чтобы оставить AngularJS 1.3 мертвым в воде.


Добавить комментарий