> For the complete documentation index, see [llms.txt](https://gpeterhand.gitbook.io/react/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gpeterhand.gitbook.io/react/master.md).

# Universal React Applications

Руководство по разработке универсальных приложений на React

Основные инструменты:\
**React 16.6 | Redux 4.0 | React Router 4.3 | Babel 7.1 | Webpack 4.26 | Node.js 10.14 | Express 4.16 | Yarn 1.12**

В этом справочнике будут показаны основные приемы по созданию приложения на React от самого простого до универсального (с серверным рендерингом, раздельной загрузкой кода, асинхронными запросами и т.д.).

Здесь не будут использованы такие комплексные решения, как [create-react-app](https://github.com/facebook/create-react-app), [React Boilerplate](https://www.reactboilerplate.com/), [Next.js](https://zeit.co/blog/next5), [After.js](https://github.com/jaredpalmer/after.js), [Gatsby.js](https://www.gatsbyjs.org/) и т.д. У каждого из них есть как свои достоинства, так и свои недостатки. Наиболее продвинутое решение, возможно, Next.js (но там вместо React Router свой роутинг). Попробуем пройти своим путем.

**Конечные требования к приложению:**

* Рендеринг на стороне сервера (Server Side Rendering)
* Раздельная загрузка кода (Code Splitting)
* Динамическая загрузка кода (Lazy Loading)
* универсальный роутинг
* новые возможности React (context API, порталы, фрагменты, componentWillMount deprecated)
* новые возможности ES6/7 (стрелочные функции, деструктуризация, промисы, async/await, декораторы, генераторы,...)
* работа в режиме реального времени (WebSockets, socket.io)
* Progressive Web App (PWA) - service workers, offline, ...
* GraphQL, Apollo
* Современный дизайн и анимации (Transitions)
* Jest (тестирование)
