Подписаться на блог

Диплом 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».