В данном уроке разберём зачем вообще нужны JS фреймворки. Предположим нам нужно создать SPA (Single Page Application), это такое веб приложение которое состоит из одной HTML страницы, а всё остальное делается средствами JavaScript. Такие приложения характерны тем что они очень динамичны и работают на много быстрее чем статические сайты.
Для написания такого приложения существует несколько подходов:
- Писать на нативном JS.
То есть без использования сторонних библиотек. Данных подход не разберём так как это очень тратит Ваши ресурсы, и в большинстве случаем в пустую. - Используя библиотеки.
В данном уроке для примера рассмотрим jQuery. - Писать на JS фреймворке.
И данный способ тоже рассмотрим.
Создание приложения на jQuery
Плюсы
- Быстрый старт.
То есть, чтобы начать писать не нужно никакие настройки делать. Просто нужно подключать библиотеку – это быстро. - Не нужно ничего изучать.
Многие знакомы с данной библиотекой.
Минусы
- Медленная библиотека.
jQuery работает в десятки раз медленнее чем любой JavaScript фреймворк, или нативный JS. - Нет структуры.
У данного подхода нет определенной структуры. То есть jQuery это просто библиотека которая основана на селекторах и не несёт в себе какого-то паттерна программирования. В ней мы просто пишем код и всё. - Сложная поддержка кода.
Данный пункт это последствие предыдущего пункта. Если нет структуры сложно разобраться где и что лежит, по этому поддерживать такой код – трудно (и это уже знаю по личному опыту). - Плохая расширяемость.
Когда приложение вырастит до больших объёмах, очень сложно будет добавить новый функционал так как не понятно будет что и где находиться. То есть для маленьких приложений это не очень актуально, однако для серьёзные приложения это будет сольдный минус.
Создание приложения на фреймворке
Плюсы
- Структурированный код, паттерны.
Любой фреймворк несёт в себе какой-то паттерн программирования. Из за этого у него очень структурированный код. Например Backbone.js несёт в себе паттерн MVC, или например AngularJS несёт в себе паттерн MVVM. Это сильно упрощает дальнейшую разработку приложения. - Много нужных инструментов идёт уже “в коробке”.
Например какие-то инструменты для роутинга или для шаблонизаций. - Высокая производительность.
Любой фреймворк в десятки раз быстрее чем jQuery. Опять-же на маленьких проектах это может быть не очень актуально, однако для больших это очень заметно. То есть приложения на jQuery могут начать тормозить потому что операций с DOM-ом очень затратны. - Лёгкая расширяемость и поддержка кода.
Из за того что код структурированный и всё находиться в своём модуле (модель, роутинг), очень легко добавить новый функционал. - Быстрая разработка.
В начальном этапе придёться настроить как-то фреймворк. Однако в последствие можно будет просто пользоваться уже тем что всё структурировано и повыситься скорость разработки.
Минусы
- Изучение фреймворка.
То есть в некоторых фреймворках есть собственный синтаксис, как например в React.js или Angular.js. У каждого фреймворка есть своя “особенная” идеология (за счёт этого и можно реализовать интересные вещи).
Итог:
Для маленьких приложения не очень целесообразно какой либо большой фреймворк.
Однако для SPA нужно использовать фреймворк.