Подтвердить что ты не робот

Замена angular на стандартные веб-технологии

Я работаю над проектом, который обладает роскошью использования ECMA 6 в последних браузерах для продукта, который будет отправлен через 1,5 года. Поэтому мы подумали, почему не использовать веб-компоненты сейчас, когда Angular 2 недоступен (это будет ECMA 6). И пока мы на нем, можем ли мы заменить Angular вообще, не возвращаясь в каменный век?

Как заменить Angular?

Здесь этот сайт называется youmightnotneedjquery.com, который в основном связан с тем, как в современных браузерах на самом деле имеется большая часть материала, для которого традиционно использовался jQuery. Мне интересно увидеть что-то подобное для Angular.

В основном мы используем четыре функции Angular. Каковы мои варианты их замены?

  • Angular Директивы Веб-компоненты
  • Angular Модули Модули ECMA 6 (не совсем то же самое)
  • Angular Маршруты
  • Angular двухсторонняя привязка данных

PS. Мы не хотим заменять Angular чем-то похожим на Backbone или Ember. Мы хотим заменить его стандартными веб-технологиями, но если мы воспользуемся небольшими инструментами для восполнения пробела, мы рассмотрим его.

4b9b3361

Ответ 1

Я занимаюсь исследованиями за последние 3 недели, и многие люди думают об альтернативе после того, как Angular принял радикальный путь изменения. К счастью, у upcomming W3C Web Components стандарт действительно есть все, что нам нужно, и он работает прямо сейчас с polyfills из проекта Polymer. Поэтому, чтобы ответить на вопрос:

  • Angular Директивы Веб-компоненты используйте polyfill пока все браузеры не поддерживают его.
  • Angular Модули Модули ECMA 6 часть проблемы решается с помощью импорта HTML. Но вы также можете использовать Traceur, пока браузеры не поддержат его.
  • Angular Маршруты → Есть компонент для этого & trade; используйте <app-router>.
  • Angular двухсторонняя привязка данныхPolymer добавляет "волшебный" слой на верхней части простых стандартных веб-компонентов. Это включает в себя множество функций, включая привязку данных.

+ Plus Подробнее

Если вам интересно о процессе сборки для конкатенации файлов, чтобы уменьшить количество запросов HTTP, посмотрите Addy Osmani post о Vulcanize. Спойлер: вам может не понадобиться это с предстоящей оптимизацией HTTP 2.

Многие проекты Angular используют Twitter Bootstrap для макета. Полимер может сделать это, плюс он отлично играет с Google Элементы бумаги (полностью необязательный, но великолепно удивительный).

Если вы хотите познакомиться с веб-компонентами в целом, вот куча хороших статей: http://webcomponents.org/articles/

И вот множество веб-компонентов: http://customelements.io/ Я не знаю, будет ли это новый NPM, но компоненты списка очень впечатляют и растут.

Это относительно сложно разоблачить API для компонента Angular. Люди придумали всевозможные методы из функции связи в излучающие события. В "Веб-компоненты" , однако, действительно легко, чтобы ваш компонент взаимодействовал с внешним миром и, действительно, API и события, которые вы раскрываете, отличается от стандартных HTML-тегов, таких как <audio>.

Как и Angular, вы можете использовать Polymer with Дарт.

Заключение

В целом, я не вижу причин использовать Angular, за исключением if:

  • У вас огромный объем инвестиций в исходный код в Angular и вы не хотите переносить все в стандартную сеть. (Angular 2.0 в любом случае будет осуждать ваш код, поэтому вы застряли с Angular 1. *)
  • Ваша команда слишком ленив, чтобы выучить новую технологию (в этом случае сеть, возможно, не будет подходящей платформой для такого отношения).

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

Я не говорю, что Полимер - окончательный ответ на все. В лучшем случае это еще один Angular, который станет бесполезным через пару лет, но теперь самое время его изучить и использовать. W3C стандарты не умереть легко, хотя и Полимер имеет тенденцию быть намного ближе к их.

RIP Angular 2009-2014

Там элемент для этого & trade; - это новый Там приложение для этого & trade;

Ответ 2

TL;DR: серьезно рассмотрите возможность написания почти Angular 2.0-совместимого Angular 1.3 приложения перед запуском собственной фреймворка

Кажется, что вы определили, что Angular делает много всего правильно и почему вы пытаетесь его реплицировать, поэтому в основном вы собираетесь сворачивать свои собственные, объединяя мешанину библиотек, Если у вас нет огромных инвестиций Инженерных часов, структура, которую вы создадите, скорее всего будет:

  • Слегка документированный
  • Кошмар, поддерживающий кросс-браузер, и (хуже всего)
  • Трудно найти новых сотрудников.

Если бы не было рамки, которая делала то, что вы хотите сделать, я думаю, что ваш собственный вариант имеет смысл, но, пытаясь воссоздать Angular, вы:

  • Принимая во внимание много инженерных работ, которые уже были сделаны специальной командой, которые могли быть потрачены на создание продукта
  • Сложнее было собрать новых сотрудников, потому что вам нужно:
    • Найдите кандидатов, которые хотят использовать домашнюю структуру вместо того, чтобы развивать свои навыки в среде с открытым исходным кодом, которую они могли бы использовать в другом месте.
    • Обучите этих сотрудников использованию вашей инфраструктуры (и удачи, если ваша документация не зрела).

Я знаю, что ваш вопрос задает вопрос о том, как заменить Angular, но я видел, что слишком много компаний идут по пути своего движения и оплачивают его по дороге. Опять же, если ваш бюджет включает в себя тонну основных ресурсов для создания (и документирования и поддержания) структуры, и вы не думаете, что есть какие-то шансы, что углы будут сокращены, когда толчок начнет толкать позже, если сроки будут жесткими, ваше собственное может иметь смысл. Тем не менее, я думаю, вам стоит серьезно подумать над тем, как писать Angular 1.3 приложения, чтобы их можно было легко переносить на Angular 2.0 и идти по маршруту Angular. Просто посмотрите на размер сообщества, которого вы упускаете:
http://www.airpair.com/js/javascript-framework-comparison