Диплом 4. Redux, роутер, SSR

Published • 3 min read

#Diploma, #Education

Сегодня я начинаю писать клиентскую часть диплома. Первым делом надо всё донастроить, сконфигурировать и связать с роутером и redux’ом.

Втащить Redux несложно, сложно его подключить нормально и прокинуть всё через роуты. Так ещё и ESlint ругается на код типа:

class App extends React.Component {
  methodName = () => {
    /*Говорит, что methodName undefined =/ */
  }
}

Окей, ESlint оказался как-то слишком старым, обновил - вроде всё завелось.


Так, вроде бы заработало, успел всё сломать и починить пару раз. react-router-redux заюзать всё-таки пришлось. Пока далеко от роутинга не ушёл, нужно серверный рендеринг сделать.


Серверный рендеринг + react + redux = вообще ад какой-то. Что-то то одно, то другое ломается, мануалы везде разные, ЧИТО ДЕЛАТЬ.


Сейчас, например, babel-node ну никак не хочет модключать стили в изоморфный компонент со стороны сервера.


Ладно, решил уже не заморачиваться с “горячей” отладкой SSR, поэтому его только после билда можно проверить. Что касается мануалов - самый подходящий оказался на codeburst. Теперь рендеринг на сервере работает, но вот правильно или нет я пока не совсем разобрался.


Удалил react-router-redux, ибо не так он уж мне и нужен. Я так-то пока не придумал, зачем мне вообще в этом проекте Redux.


Всё-таки у меня есть предположение, что менеджмент состояний я умудрился сломать, но с проблемами буду разбираться по мере их поступления.


Хм, опять же это всего диплом, а я не планировал делать SSR для кого-то кроме поисковых ботов, так что пока вообще всё неплохо идёт.


Так, всплыло куча косяков со статикой и подобным, но сейчас исправлено всё, кроме, конечно, режима разработки, в котором у меня NodeJS через babel запускался, но теперь-то там в каких-то местах в компоненты стили импортируются, в результате чего babylon падает с ошибкой.


Поправил dev-сборку, а всё ломалось из-за того, что где-то там, через 2 файла подключался компонент со стилями, чего babel терпеть не желал. В процессе ещё со статикой нахватал проблем и gzip, но там я над фиксами долго думал по причине невнимательного чтения доков.


Результатом части вчерашнего дня и почти всего сегодняшнего является исправленные конфиги сборки и работающий серверный рендеринг, хотя могло бы быть лучше.


Под конец дня зачем-то добавил в блог Github emoji emoji-sunglasses (чуть-чуть пописал на jQuery).

А сейчас пора почитать что-то интересное и отдыхать, например, “REST is the new SOAP”, а так же пара ответов “A Response to REST is the new SOAP” и “Still Going on REST is the new SOAP”.

© Igor Fedyukin 2009 - 2020