# Вступление

*ОБНОВЛЕНИЕ 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 и более - неплохо бы сделать переменную.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://max-frontend.gitbook.io/react-router-course-ru/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
