Я уже много месяцев исследую достоинства AngularJS, чтобы использовать его в качестве основы для создаваемого мной продукта.Есть много аспектов AJS, которые стоят того, чтобы учиться.Да, есть некоторая кривая обучения, но она того стоит, особенно если вы хотите иметь больший контроль над возможностями на стороне клиента.
JQuery манипулирует DOM во время выполнения, тогда как AJS находится в жизненном цикле рендеринга JS.Это позволяет вам обучать DOM новым трюкам, создавая свои HTML-элементы и атрибуты.Это очень, очень сильно.То, что вы можете сделать, - это ввести новое поведение Элемента для любых ваших целей и потребностей.В AJS эти пользовательские атрибуты / элементы HTML называются директивами.Благодаря возможности создавать свои собственные директивы, вы можете создавать функциональные возможности, которых нет в текущем HTML-коде, исключая возможности, которые будут работать во всех современных браузерах сейчас и в будущем.Из многих подходов к созданию нового поведения AJS представляется наиболее безопасным направлением, которое можно выбрать из-за того, как они решили его реализовать.
В JJuery в AJS наблюдается огромный прирост производительности.
Мне нравится простота двусторонней привязки данных и разделение проблем в их шаблоне MVC на стороне клиента, который, как указано выше, обеспечивает отличную тестируемость.Там объект объекта является связующим звеном между представлением (HTML), моделью (ваши данные) и вашими пользовательскими контроллерами.Область обеспечивает доступ к родительским атрибутам и может быть изолирована на уровне одного уровня, что важно для некоторых повторно используемых шаблонов.
Шаблоны могут создаваться и повторно использоваться в вашем приложении, которые могут содержать 0 или более пользовательских директив.
Я использовал фреймворки, такие как PRISM и MEF, но обнаружил, что AJS обладает большинством тех же функций, которые существуют в этих .NET-фреймворках, но занимает 29 тыс. Футов.Ходят слухи, что они работают над отложенной загрузкой, которая, если она будет предоставлена, обеспечит некоторые очень интересные возможности типа LOB.
Существует ряд инфраструктур пользовательского интерфейса, которые создаются для AJS, но вы можете обернуть любую стороннюю управляющую библиотеку по мере необходимости, приложив немного усилий.Хитрость заключается в том, чтобы гарантировать, что когда эти элементы управления сторонних производителей вызвали изменения, вы обеспечите надлежащее уведомление AJS, используя их метод применения.
Если вы объединяете AJS с MS TypeScript в VS 2012, это дает возможность управлять и создавать некоторые очень впечатляющие проекты, которые будут хорошо работать для тех, кому более комфортно работать с проектами в VS.
Существует множество других причин, чтобы взглянуть на AJS, но если вы рассматриваете такие фреймворки, как KnockOut, я бы настоятельно рекомендовал вместо этого AJS, независимо от того, какая у него кривая обучения.Knockout - это библиотека, AJS - это фреймворк.