Речь идёт о маршрутизаторе
react-router, но это не особо важно. Я попробовал включать маршруты клиентской части в серверную и нет - оба варианта. И не могу теперь определиться, что из этого лучше. Интересует выбор для изоморфного приложения, скажем, интернет магазина.
Включение маршрутов в серверную часть, вроде бы, экономит время, но на деле оказалось, что создаёт больше проблем, чем решает. А если не включать их - то приходится клиентские маршруты клонировать на сервере.
Речь идёт о маршрутах с данными (типа страницы товара, каталога - с запросом в БД), так и статических страницах (вообще без запросов к БД)
Я немного помогу отвечающим и опишу оба подхода более детально.
Если мы включаем маршруты, то:
Изоморфная часть React становится middleware.+- DRY для клиентских маршрутов - не нужно их описывать в серверном маршрутизаторе
-- Появляется головная боль с получением данных до отрисовки (в FB придумали Relay как решение)
- Трудности с определением исключений, например, 404. Заодно и двойная отрисовка приложения, если попали на маршрут 404
Если мы не включаем маршруты, то:
Изоморфная часть React очень похожа на обычные шаблоны типа Jade.+- С получением данных нет проблем
- Статические страницы выводятся через продублированный на сервере маршрут
-- Описываем маршруты дважды (повторяем себя)
Вся проблема именно в дублировании... Может, не так страшен чёрт, как его малюют?