Диплом 4. Redux, роутер, SSR
Сегодня я начинаю писать клиентскую часть диплома. Первым делом надо всё донастроить, сконфигурировать и связать с роутером и redux’ом.
Втащить Redux несложно, сложно его подключить нормально и прокинуть всё через роуты. Так ещё и ESlint ругается на код типа:
class App extends React.Component {
methodName = () => {
/*Говорит, что methodName undefined =/ */
}
}
—
Окей, ESlint оказался как-то слишком старым, обновил — вроде всё завелось.
—
Так, вроде бы заработало, успел всё сломать и починить пару раз. `react-router-redux` заюзать всё-таки пришлось. Пока далеко от роутинга не ушёл, нужно серверный рендеринг сделать.
—
Серверный рендеринг + react + redux = вообще ад какой-то. Что-то то одно, то другое ломается, мануалы везде разные, ЧИТО ДЕЛАТЬ.
—
Сейчас, например, babel-node ну никак не хочет модключать стили в изоморфный компонент со стороны сервера.
—
Ладно, решил уже не заморачиваться с «горячей» отладкой SSR, поэтому его только после билда можно проверить. Что касается мануалов — самый подходящий оказался на [codeburst](https://codeburst.io/react-isomorphic-universal-app-w-nodejs-redux-react-router-v4-be80aa57dcaf). Теперь рендеринг на сервере работает, но вот правильно или нет я пока не совсем разобрался.
—
Удалил `react-router-redux`, ибо не так он уж мне и нужен. Я так-то пока не придумал, зачем мне вообще в этом проекте Redux.
—
Всё-таки у меня есть предположение, что менеджмент состояний я умудрился сломать, но с проблемами буду разбираться по мере их поступления.
—
Хм, опять же это всего диплом, а я не планировал делать SSR для кого-то кроме поисковых ботов, так что пока вообще всё неплохо идёт.
—
Так, всплыло куча косяков со статикой и подобным, но сейчас исправлено всё, кроме, конечно, режима разработки, в котором у меня NodeJS через babel запускался, но теперь-то там в каких-то местах в компоненты стили импортируются, в результате чего babylon падает с ошибкой.
—
Поправил dev-сборку, а всё ломалось из-за того, что где-то там, через 2 файла подключался компонент со стилями, чего babel терпеть не желал. В процессе ещё со статикой нахватал проблем и gzip, но там я над фиксами долго думал по причине невнимательного чтения доков.
—
Результатом части вчерашнего дня и почти всего сегодняшнего является исправленные конфиги сборки и работающий серверный рендеринг, хотя могло бы быть лучше.
—
Больше они не работают, т. к. блог уже пару раз переехал
Под конец дня зачем-то добавил в блог Github emoji :sunglasses: (чуть-чуть пописал на jQuery).
А сейчас пора почитать что-то интересное и отдыхать, например, «REST is the new SOAP», а так же пара ответов «A Response to REST is the new SOAP» и «Still Going on REST is the new SOAP».