Фреймворк javascript что это
Понимание JavaScript-фреймворков для фронтенда
Этим набором статей мы постараемся дать вам удобную отправную точку, чтобы помочь вам начать изучать основы. Мы не стремимся научить вас всему, что вам нужно знать о React / ReactDOM, или Vue, или какой-то другой конкретной среде; Документация этих фреймворков отлично выполняют эту работу. Вместо этого мы хотим сделать шаг назад и сначала ответить на более фундаментальные вопросы, такие как:
После этого мы предоставим некоторые учебные пособия, охватывающие основы некоторых фреймворков, чтобы предоставить вам достаточно контекста, чтобы вы могли начать углубляться в этой теме. Мы хотим, чтобы вы изучали фреймворки прагматично, не забывая о фундаментальных практиках веб-разработки, таких как, например, доступность.
Prerequisites
You should really learn the basics of the core web languages first before attempting to move on to learning client-side frameworks — HTML, CSS, and especially JavaScript.
Your code will be richer and more professional as a result, and you’ll be able to troubleshoot problems with more confidence if you understand the fundamental web platform features that the frameworks are building on top of.
Introductory guides
React tutorials
Note: React tutorials last tested in May 2020, with React/ReactDOM 16.13.1 and create-react-app 3.4.1.
If you need to check your code against our version, you can find a finished version of the sample React app code in our todo-react repository. For a running live version, see https://mdn.github.io/todo-react-build/.
Ember tutorials
Note: Ember tutorials last tested in May 2020, with Ember/Ember CLI version 3.18.0.
If you need to check your code against our version, you can find a finished version of the sample Ember app code in the ember-todomvc-tutorial repository. For a running live version, see https://nullvoxpopuli.github.io/ember-todomvc-tutorial/ (this also includes a few additional features not covered in the tutorial).
Vue tutorials
Note: Vue tutorials last tested in May 2020, with Vue 2.6.11.
If you need to check your code against our version, you can find a finished version of the sample Vue app code in our todo-vue repository. For a running live version, see https://mdn.github.io/todo-vue/dist/.
Which frameworks did we choose?
We are publishing our initial set of articles with guides focusing on three of the major frameworks out there — React/ReactDOM, Ember, and Vue. There is a variety of reasons for this:
We want to say this up front — we’ve not chosen the frameworks we are focusing on because we think they are the best, or because we endorse them in any way. We just think they score highly on the above criteria.
Note that we were hoping to have more frameworks included upon intial publication, but we decided to release the content and then add more framework guides later, rather than delay it longer. If your favourite framework is not represented in this content and you’d like to help change that, feel free to discuss it with us! Get in touch with us via Matrix, or Discourse, or drop us a mail on the mdn-admins list.
Javascript фреймворки. Что это? Зачем? Почему?
Что такое JS-framework и зачем он нужен?
JS-framework’и — это инструменты для построения динамических веб/мобильных/настольных приложений на языке Javascript. Как и к любым другим инструментам,
разработчики прибегают к использованию js-фреймворков там, где невозможно/очень сложно/очень долго выполнять задачу обычными средствами. В подавляющем большинстве случаев, фреймворки используются для написания, так называемых, Single Page Applications. Т.е. все, что проиходит на сайте, проиходит на одной страничке, без прямого перехода с нее.
С их помощью можно разрабатывать как полноценные сайты, так и функциональные модули (различные онлайн-инструменты). Конечно, полноценные фреймворки лучше подходят для первой задачи, а для второй рекомендуется использовать более легковесные фреймворки или библиотеки.
Давайте сначала немного поговорим именно о фреймворках. Они предоставляют четкую структуру приложения и реализуются с использованием так называемых «паттернов проектирования» (понятие перекочевавшее больше из бекенда, но явно имеющее место во фронтенд разработке с использованием js-фреймворков). Наиболее широко рапространены следующие паттерны: MVC (Model-View-Controller), MVP (Model-View-Presenter) и MVVM (Model-View-ViewModel). В интернете имеется огромное количество информации, подробно описывающее каждый из них, и раскрытие этой темы не является основной задачей статьи, потому кому будет интересно — может самостоятельно ознакомиться с этими понятиями.
Преимущества построения приложения на JS-фреймворке:
Из существенных недостатков можно выделить только временно неполную поддержку поисковыми системами, но эта задача редко совпадает с задачей по реализации SPA (Single Page Application), тем более, что ведущие поисковые системы (как минимум, Google), уже практически полностью решили эту проблему.
Фреймворки JavaScript. Как изучить их по-быстрому
Сегодня мы хотели затронуть такую многогранную и противоречивую тему, как фреймворки JavaScript. За последние несколько месяцев в издательстве неоднократно обсуждались перспективы издания книг и по Angular.js, и по Knockout.js, а книга по Backbone.js у нас выходила в прошлом году. Следующий материал призван помочь разобраться в сильных и слабых сторонах различных фреймворков JavaScript. Возможно, после изучения статьи читателю будет проще ответить на вопросы о том, так ли схожи эти фреймворки, и желает ли он дополнительно изучить какую-то из технологий, упомянутых в этом обзоре. Мы же попросим вас поделиться вашими соображениями о том, нужны ли новые книги по этим фреймворкам, если да — то по каким (высказываемся в комментариях, не стесняемся давать ссылки на книги).
Чтобы быстро изучать фреймворки JavaScript из разряда MV*, важно уметь представить любой фреймворк как ряд возможностей. Основные функциональные возможности MV*-приложения — это маршрутизация, привязка данных, шаблоны/представления, модели и хранилище данных. В данной публикации я собираюсь описать эти возможности и показать код реализации каждой из таких возможностей в двух или трех фреймворках. Для начала мы конкретно разберем, решение каких именно задач оптимизирует каждый из фреймворков, после чего, надеюсь, вы заметите во всех этих фреймворках больше сходств, чем различий. Оказывается, что в большинстве фреймворков активно заимствуются возможности, оправдавшие себя в других фреймворках.
Я предпочитаю видеть в людях сходства, а не различия — Исабель Альенде
Не утруждайте себя разбором каждой строки кода. Пока просто постарайтесь оценить, в чем схожи эти фреймворки, и какие проблемы они позволяют решать на проекте.
Как минимум, маршрутизация отображает ваши URL на действия, но иногда дело доходит до реализации полного паттерна «машины состояний» для управления переходами между состояниями в пределах представления.
Если вам когда-нибудь доводилось использовать маршрутизатор в серверном MVC-фреймворке, например, в Rails, CodeIgniter, CakePHP, ASP.NET MVC, Spring MVC, JSF, STRUTS, Grails и т.д., можете считать MV*-маршрутизаторы JavaScript аналогичными сущностями, но работающими на клиенте с JavaScript и прокладывающими маршруты к серверному коду, который может быть написан на PHP, Ruby, Java, C# и т.д.
Может возникнуть вопрос: а как все это будет работать в старых браузерах? Механизм работает по умолчанию, используя при этом в качестве маршрута всю информацию, которая расположена в URL после хэштега. Правда, если в HTML сконфигурирована поддержка пуш-состояний (в большинстве фреймворков это делается одной строкой кода), то URL без хэшей, совпадающие с маршрутами, будут перехватываться на клиенте и также выполнять код JavaScript.
Пуш-состояние НЕ ПОДДЕРЖИВАЕТСЯ по умолчанию, так как, несмотря на то, что URL, запрошенный непосредственно через закладку или пересланный в электронном сообщении, будет работать на компьютере конечного пользователя, поисковые роботы не слишком хорошо приспособлены к работе с JavaScript. То есть, робот может не выполнить код JavaScript, поэтому, не сможет просмотреть истинное содержимое страницы.
Решение, обычно предлагаемое в таких случаях – запустить на сервере PhantomJS или другой легковесный браузер, заставить его загружать страницы и JavaScript, а затем возвращать сгенерированную разметку вместе с JavaScript. Чтобы настроить этот механизм, нужно потрудиться, поэтому он задается по умолчанию для URL с хэштегами, поддерживаемых во всех браузерах.
Довольно объяснений, переходим к коду.
Вот простой пример маршрутизации в Backbone.js
В частности, обратите внимание на объект AppRouter. Маршруты отображаются на функции. Функции просто создают объект представления, управляющий фрагментом модели DOM, и добавляют его на страницу, как только URL изменится. Функция Backbone.history.start() приказывает Backbone начать слушать изменения URL.
Пример с AngularJS
Вот простой пример маршрутизации в AngularJS.
Пример с AngularJS очень напоминает Backbone, за тем исключением, что маршруты отображаются на классы templateUrl и контроллеров (в таком контексте контроллеры подобны представлениям Backbone).
Пример с Ember
Ниже приведен простой пример маршрутизации в Ember.
Опять же, пример очень похож на предыдущие, за тем исключением, что в Ember.js первым параметром «ресурсного» объекта маршрутизатора является имя routeName, а вторым — URL. На первых порах такой порядок следования меня запутал, пока кто-то не подсказал, что параметр пути необязателен и зачастую может устанавливаться по соглашению, как в случае со страницей about из этого примера. Кроме того, для запуска этого простого примера маршрутизации нужны шаблоны, но я остановлюсь на них только в конце статьи. Пока достаточно знать, что шаблоны помещаются в элементе <
В большинстве фреймворков содержится решение для маршрутизации, но в Knockout.js основной акцент делается на привязке данных и предлагается лучшее в своем роде решение, предполагающее использование одной из библиотек JavaScript, единственное назначение которой — маршрутизация. Наиболее распространенные специализированные библиотеки такого рода — SummyJS и HistoryJS. SummyJS работает с браузерами, поддерживающими API History для HTML5, а также URL-хэши для устаревших браузеров (IE 8 и ниже). Библиотека HistoryJS меньше, но поддерживает только API History для HTML5.
Привязка позволяет вносить изменения в модель данных, которую требуется обновить в представлении или и/или позволяет автоматически обновить модель с учетом изменений, внесенных в представление, причем для этого не требуется никакого дополнительного кода. Однонаправленная привязка данных обычно означает, что изменения, вносимые в модель, распространяются в представление. При двунаправленной привязке данных появляется дополнительная возможность оперативно отражать в модели все изменения, вносимые в представление. Привязка данных избавит вас от массы стереотипного кода, который обычно приходится писать разработчикам. Соответственно, программист может сосредоточиться на решении уникальных задач, свойственных данному приложению.
Пример с AngularJS
Ниже приведен простой пример двунаправленной привязки данных в AngularJS. При наборе текста в поле ввода он будет выводиться на экран сразу же после приветственного сообщения.
Пример с KnockoutJS
Фреймворк KnockoutJS действительно сосредотачивается исключительно на привязке данных и используется в рамках наилучшего подобного решения вместе с другими фреймворками и библиотеками, в частности, с DurandalJS для управления дисплеем и History.js или Sammy.js для обработки маршрутизации. Вот пример привязки данных в KnockoutJS.
В Backbone нет автоматической привязки данных, однако ее можно выполнить вручную. По моему опыту, однонаправленная привязка данных, при которой представление обновляется в ответ на изменения, вносимые в модель, является исключительно полезной. Реальные случаи однонаправленной привязки данных от вида к модели встречаются реже (например, вы хотите реализовать живой предпросмотр текста, вводимого пользователем в текстовый редактор). Действительно, привязка от представления к модели может быть полезна, но зачастую причиной изменений представления является информация, вводимая пользователем, а вы хотите успеть реализовать и другую логику прежде, чем эти изменения будут внесены в модель. Например, речь может идти о валидации ввода или фильтрации списка, при которой также требуется запомнить текущий фильтр. Ниже показан простой пример кода, в котором реализованы оба варианта привязки.
Итак, вы слушаете события изменений, происходящие в модели, и вызываете свойство представления render, чтобы модель обновила представление. Аналогично, вы слушаете события «keyup» при вводе и изменяете модель, получая из вводимой информации нужное значение при помощи jQuery и устанавливая его в модели — так, чтобы представление обновило модель. Данный пример помогает составить впечатление о том, сколько кода потребуется, чтобы заработала привязка данных. Также необходимо упомянуть о существовании многочисленных плагинов, поддерживающих привязку данных в Backbone.
Привязка данных в Ember выглядит так:
Фреймворк Ember использует для шаблонизации знакомые нам объекты handlebar, но также включает «помощники ввода», обеспечивающие привязку тех полей ввода, которые встречаются в большинстве форм. В данном примере фигурные скобки << заменяют угловые
Гид для Новичков по Выбору JavaScript Фреймворка
Russian (Pусский) translation by Anton L (you can also view the original English article)
Довольно неясная ситуация складывается, когда дело касается выбора нужного JavaScript фреймворка. Эта статья призвана помочь начинающему фронтенд разработчику сориентироваться при выборе подходящего фронтенд фреймворка. Мы разберём основы и синтаксис каждого, упомянутого здесь фреймворка, помимо этого я предоставлю список полезных, обучающих ресурсов.
Что Такое JavaScript Фреймворк?
В мире фронтенд разработки “фреймворк (framework)” может означать JavaScript библиотеку созданную для отображения интерактивных интерфейсов, основанных на вводимых данных. Он нужен для отображения информации в тот момент когда пользователь взаимодействует с интерфейсом. Все эти библиотеки немного друг от друга отличаются, но цель у них всегда одна; показать новую информацию, данные, когда было совершено какое-либо действие.
Давайте подробнее разберём эти мощные фреймворки, которые помогут реализовать поставленную задачу.
Популярные JavaScript Фреймворки
Существует много опций при выборе фреймворка, далее список наиболее популярных на сегодняшний день: Vue, React, Angular и Ember. Каждый из них был выбран согласно росту сообщества, стабильности, активности на Github, временному промежутку при котором технология была доступна разработчикам, а также основываясь на том, используется-ли технология большим количеством компаний и разработчиков.
Vue
Первый Коммит 27-ого Июля, 2013-ого
Размер Файла: 27.5KB минифицированный
Ниже мы можем увидеть пример синтаксиса простого “Hello World”:
Более интересный пример с использованием значений атрибутов (“attribute values”) в разметке:
Vue.js позволяет вам обрабатывать данные вводимые пользователей, создавать компоненты-шаблоны (component templates), привязывать данные к структуре DOM с условиями и циклами, а также декларативное отображение (“declarative rendering”), с простым синтаксисом, основанное на спецификации веб-компонентов.
Ресурсы для Обучения:
React
Первый Коммит 29-ого Мая, 2013-ого
Размер Файла: 7.3KB минифицированный С Дополнениями: 11.3KB минифицированный
Разработчики React заявляют, что данная библиотека предназначена для создания интерфейсов для работы с динамичными данными. Она бала разработана работниками Facebook и является проектом с открытым исходным кодом. Вы можете себя почувствовать неуютно когда я сообщу вам, что нужно писать HTML в JavaScript, но к сожалению так работает React.
Давайте разберём пример синтаксиса прямиком из вступительного туториала документации React. В этом примере показано создание так называемого “Component subclasses”, также имеются и другие типы компонентов. Как вы наверно могли заметить, синтаксис похож на XML:
React идёт с дополнительными опциями, называемые аддонами, которые представляют из себя набор полезных модулей. Эти модули включают в себя инструменты для облегчения работы с анимациями и переходами, инструменты для измерения производительности веб-приложения, тестирование и многое другое. Документация React рекомендует использовать React вместе с Babel, позволяющий применять ES6 и JSX в вашем JavaScript коде. Также имеются полезные инструменты для отладки React приложений, в виде расширений для Chrome и Firefox, с котрыми можно проинспектировать древо React компонентов в инструментах разработчика вашего браузера.
Ресурсы для Обучения:
Angular
Первый Коммит 18-ого Сентября, 2014-ого (согласно GitHub)
Первоначальный Релиз (Согласно Википедии) 20-ого Октября, 2010-ого
Размер Файла: Инструмент Командной Строки. Больше не распространяется, как отдельный JS файл.
Angular разработан командой Google. Так как HTML никогда не задумывался, как динамичный язык, Angular расширяет HTML добавляя набор атрибутов, способных динамически видоизменять разметку. В итоге это позволяет делать декларативное привязывание (“declarative bindings”) к событиям, для отображения динамических данных и состояний основанных на взаимодействии пользователя. Вы можете столкнуться со значительными требованиями к данным при построении моделей данных используя RxJS, Immutable.js или любую другую технологию Push-модель. И вы можете расширить язык шаблонов своими компонентами или использовать широкий выбор существующих компонентов.
“Научитесь создавать приложения на Angular и повторно использовать ваш код и возможности для построения приложений для любых конечных целей. Будь-то веб, мобильный веб, нативный веб или десктопные прилоежния.”
Angular также построен из компонентов, являющихся комбинацией HTML шаблонов и классов компонентов, которые контролируют часть экрана.
Ресурсы для Обучения:
Ember
Ember библиотека, похожая на те, которые мы обсуждали ранее, отлично работает с Handelbars. Для тех кто не знаком с Handelbars это язык шаблонов для построения статических страниц, чем-то похожий на Jekyll. Разработчики могут использовать Handelbars для создания разметки и JavaScript для реализации кастомного поведения для компонентов основанных на взаимодействии пользователя.
Ember создан на Node и используется множество Node.js модулей для работы. Также Ember имеет интерфейс командной строки (его можно установить через npm), предоставляющий общую структуру проекта и набор инструментов для разработки включая систему дополнений. Помимо этого с ним идёт сервер для разработки, а также специальные флаги для среды построения проекта, которые могут быть переданы через командную строку.
В синтаксисе Ember нет ничего необычного, он основан на нотации объектов и литералов, с которой мы уже знакомы в JavaScript, прибавьте сюда Handelbars для шаблонов.
Пример выше простой пример синтаксиса и файловой структуры. Данный код экспортирует и расширит Ember контроллер и скомпилирует имена из объекта в вашу разметку.
Ещё стоит упомянуть возможности роутера Ember, с которым вы по умолчанию получите хорошие ссылки в адресной строке, а также работающие кнопки для возврата на предыдущую страницу, для каждого созданного роута, API довольно легко использовать (для тех кто знаком с серверными веб-фреймворками). Ember.js всегда будет бесплатным фреймворком с открытым исходным кодом, согласно их веб-сайту.
Ресурсы для Обучения:
Заключение
Выбор фреймворка зависит от персональных предпочтений и уверенности в том, что он подойдёт для продолжительной работы над вашим проектом. Если вы хотите глубже узнать и сравнить фреймворки, на сайте Vue есть подробное сравнение, также включающие информацию о других библиотеках, таких как Knockout, Polymer и Riot. Помимо этого вы можете пройти наш тест, созданный для того, чтобы помочь определиться с выбором.
Тест: Выберите Правильный Фронтенд JavaScript Фреймворк для Вашего Проекта.
Топ-5 JS-фреймворков для фронтенд-разработки в 2020 году. Часть 1
Вероятно, фронтенд-разработчикам знакомо нечто подобное: вводишь в поисковике «лучшие JavaScript-фреймворки» и получаешь в ответ целую гору результатов, из которой очень непросто выбрать именно то, что нужно.
Что лучше всего подходит для разработки клиентских частей веб-проектов? Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что она, как человек, полный рабочий день занимающийся программированием, знает, что фронтендеры ищут то, что позволит им ускорить работу и облегчить создание интерфейсов.
В основу составления этого рейтинга фреймворков и библиотек легли результаты опроса более чем 450 разработчиков из ValueCoders. Сюда попали пять наиболее интересных инструментов.
Разработчики из ValueCoders выбирают React
Я, когда узнала о том, что мои коллеги голосуют за React, не удивилась. Большинство участников опроса сочло React одной из лучших JavaScript-библиотек. Наши разработчики использовали React во множестве проектов. Это позволило ясно увидеть сильные стороны этого инструмента. Тот, кто пользуется React, получает комбинацию из следующих возможностей:
Обзор нашего приложения
Наше приложение устроено довольно просто. Это — программа для учителей музыки, которая помогает им управлять занятиями в онлайн-школе. Этот проект помогает учителям заниматься своим основным делом, облегчая решение организационных задач.
Главной сложностью в создании этого проекта стала разработка панели управления, предназначенной для учителей. Она позволяет им управлять занятиями учеников и отслеживать их достижения. Мы решили эту задачу, положив в основу приложения экосистему библиотеки Redux. А именно, мы создали раздел приложения, предназначенный для преподавателей, пользуясь которым они могли получать сведения о достижениях учеников, демонстрировать им новые музыкальные уроки, общаться с ними, сравнивать с чем-либо их игру, оставлять им отзывы.
Сведения об ученике и о его занятиях
Собственно говоря, я получила опыт работы с React в ходе создания этого приложения. Означает ли это то, что React — это признанный всеми лидер фронтенд-инструментов? Нет, не означает. Многие, например, могут особо отметить Vue, назвав этот фреймворк одним из лучших и вспомнив о богатом наборе имеющихся в нём стандартных вспомогательных средств.
В общем-то, решение о том, какой фреймворк подойдёт для решения конкретной задачи, принимают именно фронтенд-разработчики. Принимая подобные решения, они встают перед необходимостью ответить на массу непростых вопросов. При этом, учитывая то, что на выбор инструмента у разработчиков обычно почти нет времени, они, как правило, останавливаются на том, что знают. При этом они упускают потенциальные плюсы конкурирующих технологий. Например — речь может идти о том, что фреймворк, знакомый разработчику, если сравнить его с чем-то ещё, может оказаться далеко не самым быстрым.
А для начинающих разработчиков сложно даже сделать выбор, ограничив варианты тройкой ведущих фреймворков — Angular, React и Vue. Мы, для того, чтобы облегчить подобный выбор, отобрали 5 самых интересных фронтенд-фреймворков и библиотек, на которые стоит обратить внимание тем, кто собирается заниматься веб-разработкой в 2020 году.
Большая пятёрка фронтенд-инструментов
Если отталкиваться от популярности и распространённости инструментов фронтенд-разработки, то вот — пять наиболее заметных JavaScript-фреймворков и библиотек:
Объёмы загрузок пакетов angular, ember-source, react, vue и backbone
Сравнение пакетов angular, ember-source, react, vue и backbone
Теперь поговорим о каждом из этих проектов. Начнём с React.
1. React
В JavaScript-мире React — это, определённо, лидер. В этой библиотеке используются идеи реактивного программирования, она вводит во фронтенд-разработку и множество собственных концепций.
Для того чтобы гибко использовать React в разработке веб-проектов, нужно изучить множество дополнительных инструментов. Вот, например, далеко не исчерпывающий список подобных инструментов, представленный библиотеками, которые можно использовать совместно с React. Это — Redux, MobX, Fluxy, Fluxible, RefluxJS. В React-разработке, кроме того, можно использовать jQuery AJAX, Superagent, Axios и Fetch API.
▍Конкурентный режим
▍Suspense и другие технологии
Технология React.Suspense позволяет улучшить обработку асинхронной загрузки данных в React-приложениях. Если описать эту технологию в двух словах, то можно сказать, она позволяет организовать ожидание компонентом выполнения неких условий и при этом не нарушать работу всего приложения.
Ещё одно новшество, появившееся в React 16.8, это хуки (Hook). Хуки React позволяют разработчику пользоваться важнейшими возможностями React и при этом обойтись без применения компонентов, основанных на классах. Среди таких возможностей — управление состоянием компонента и работа с методами его жизненного цикла. React содержит несколько встроенных хуков, но при этом позволяет программисту создавать собственные хуки.
React-приложения состоят из компонентов, которые содержат логику работы приложения и HTML-разметку для формирования интерфейса. Для того чтобы улучшить взаимодействие между компонентами, разработчик может воспользоваться Flux или похожей JavaScript-библиотекой.
В React-программировании используются такие понятия как состояние (state) и свойства (props) компонента. Они представлены соответствующими объектами. Их использование позволяет организовать хранение данных в компоненте и обмен данными между компонентами. Например — передачу данных из программной логики, реализуемой компонентом, в интерфейс приложения, или передачу данных от родительских компонентов дочерним компонентам.
▍Элементы экосистемы React
Вокруг библиотеки React сложилась целая экосистема, представленная различными вспомогательными инструментами и библиотеками. Вот некоторые составные части этой экосистемы:
2. Angular
На конференции AngularConnect 2019 команда разработчиков Angular сделала заявления, которые позволяют считать выход Angular 9 поворотной точкой в развитии этого фреймворка. В частности, планируется сделать компилятор Angular Ivy стандартным средством, доступным для всех приложений. Основные преимущества этой технологии заключаются в том, что её применение позволяет ускорить процесс разработки, уменьшить размер приложений, повысить их производительность и надёжность.
Современный Angular — это продвинутый модульный фреймворк для фронтенд-разработки. Раньше для подключения Angular к странице достаточно было просто добавить в её HTML-код соответствующий тег, теперь же разработчик может импортировать в свой проект необходимые ему модули Angular.
Angular известен своей гибкостью. Именно поэтому всё ещё актуальны версии Angular 1.x. Однако многие разработчики в наши дни пользуются Angular 2+ из-за MVC-архитектуры фреймворка, которая значительно изменилась в сторону архитектуры, основанной на компонентах.
Тому, кто хочет пользоваться Angular, придётся, при освоении этого фреймворка, столкнуться с некоторыми трудностями. Так, для создания Angular-приложений практически обязательно использовать TypeScript. Хотя это и усложняет работу с Angular, у такого положения дел есть свои плюсы. В частности, это повышает надёжность приложений за счёт продвинутого контроля типов, это даёт программисту дополнительные средства разработки.
▍Элементы экосистемы Angular
Вот некоторые составные части экосистемы Angular:
Уважаемые читатели! Если бы вам предложили назвать лучший фреймворк для фронтенд-разработки — что бы вы выбрали?