Какой выбрать фронтенд фреймворк для ентерпрайз сайта?
Господа, вопрос следующего характера, есть задача - переписать фронтенд одного крупного интернет магазина, сейчас там фронтенд рендерится на сервере из jsp, и приправлен jquery макаронами на стороне клиента, все это разрослось до неимоверного бардака ввиду изначального отсутствия структуры и архитектуры фронтенда. Грядет глобальная переделка, есть некоторое время на подготовку, почитать, выбрать, как структурировать клиентскую часть сайта. Думаю какой фреймворк брать для этого дела. Сам я люблю ангуляр, но в этом проекте очень важно СЕО, а ангуляр рендерит данные не сразу, делать какой-то пререндер, не очень хочется так усложнять.
Есть вариант на фреймворк переложить только работу некоторых сложных элементов страницы, которые не нужно индексировать, всякие формы, личный кабинет и тд. А остальное (каталог товаров), как и сейчас оставить на совесть jsp и серверного рендера.
Может есть еще какие предложения, может есть какая-то технология специально обученная для таких глобальных, требовательных к СЕО, задач?
Вам все равно придется рендерить страницы на сервере, без этого СЕО никуда.
Но вот вопрос, придется ли вам делать двойную работу? Нет, если вы выберете реакт. Реакт является изоморфной библиотекой, которая спокойно запускается на сервере и выполняет почти тот же самый код, что и на клиенте. Так что одним выстрелом - двух зайцев.
Так же имейте в виду, что реакт, это все же библиотека, а не фреймворк. Чтобы построить на нем полноценное приложение, потребуется кое-что еще. Гуглите react+flux.
Денис Инешин: все относительно, код с Angular1 на Angular2 мигрируется довольно легко (если использовать babel, компонентный подход, минимум дата биндинга, и у вас есть потом неделька для миграции того что вы написали за пару месяцев). Но вообще да, согласен. Просто посчитал что стоит упомянуть что Angualr2 уже близко, и он очень близок с теми идеями которые несет react + flux, но реализует все это чуть по другому. Причем с идеологической точки зрения мне этот подход больше нравятся.
FYI - они отказались полнотью от дата биндинга, его не будет, ну и они добавили абстракцию между DOM и приложению (тот же виртуальный дом грубо говоря но чуть по другому).