# Вступление

*ОБНОВЛЕНИЕ 2018: в учебнике хорошая теория, но ему уже два года. Проверяйте версии пакетов. За выходом нового учебника можно следить в* [*telegram канале*](http://bit.ly/2FI9nhs) *или* [*twitter*](http://bit.ly/2FU6zRL)

*На* [*канале*](http://bit.ly/2FI9nhs) *так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы,* [*присоединяйтесь*](http://bit.ly/2FI9nhs)*!*

Курс включает в себя 2 части:

1. Подключение и использование react-router'а
2. Использование react-router'a + redux

### Преимущества и недостатки

Преимущества данного учебника:

* на русском, текстовый формат + картинки (нет видео)
* практически все разделы содержат исходный код на [github](https://github.com/maxfarseer/react-router-ru-tutorial)
* частично включает в себя переводы официальных туториалов/документации
* использует современные (*апрель 2016*) версии библиотек
* не использует библиотеки для роутинга, кроме *react-router*
* кратко, без воды, полностью раскрывает вопрос роутинга на клиенте

Недостатки:

* некоторые примеры невзрачны
* нет красивого оформления (*html/css*)
* не рассмотрен server-side рендеринг
* нет тестов

### От автора

Вопрос **react-router + redux** не раскрыт даже в официальной документации *redux*, поэтому, так как библиотеки развиваются стремительно, я постарался "научить вас рыбачить", а не просто "дать рыбу".

Первая часть \[*react-router*] - вряд ли изменится, если **react-router** резко не изменит свое поведение.

Вторая часть \[*react-router + redux*] - может измениться, либо дополниться примерами.

Вопросы можно задавать в [twitter](https://twitter.com/MaxPatsiansky), или на <maxfarseer@gmail.com> с темой "React-router туториал".

## Консультации и платные услуги

С 2016 года, я с удовольствием занимаюсь консультированием 1 на 1, поиском проблем в коде, помощью в подготовке к собеседованию и т.д. Хороший багаж опыта, которым я готов поделиться понятным языком.

[Актуальный прайс](https://maxpfrontend.ru/uncategorized/react-redux-consultacii-code-review/)

Интересные ссылки:

[Репозиторий с кодом для уроков](https://github.com/reactjs/react-router)

[Official docs](https://github.com/reactjs/react-router/tree/master/docs)

[Unofficial React Router docs](http://knowbody.github.io/react-router-docs/)

[React router tutorial](https://github.com/reactjs/react-router-tutorial/tree/master/lessons)

[Authenticated component (old)](https://github.com/joshgeller/react-redux-jwt-auth-example/blob/master/src/components/AuthenticatedComponent.js)

[A simple way to route with redux](http://jlongster.com/A-Simple-Way-to-Route-with-Redux)

### Заметки и допущения

В курсе переодически встречаются места, когда переменная создается для *наглядности*. Не забывайте, что если мы пытаемся получить доступ к значению один раз - создание переменной неоправданно, а если 2 и более - неплохо бы сделать переменную.
