SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
React + Redux
Опыт использования
@Provectus
Timofey Lavrenyuk
Небольшая история…
В чем была ошибка?
Front End
is just the "V" part
React
React app structure
(min)
• View
• Controllers, Actions, etc…
• Router
• Data flow
React data flow
• Component state
• Flux
• Redux
• Relay
Flux
Data architecture, not framework or library
Redux
State management library
Relay
Javascript framework for building data-driven real applications
Redux React
Main Principles
• Single source of truth
• State is read-only
• Changes are made with pure functions
Redux flow
Все намного проще…
• попробовать Redux без React
• попробовать Redux + React (redux-connect)
• использовать ES2016 (ES7)
Redux без React
Redux + React
redux-connect - модуль для биндинга
redux store в react компонент
Совет: использовать connect как декоратор (ES2016)
Стала ли жизнь лучше с Redux?
Жизнь - нет, а разработка - да
• состояние не зависит от компонента и один
action может менять много состояний
• легче найти состояние и отделить action
• легче debugging
• состояние (и его историю) легко сохранить
(например в базу или localstorage)
• server rendering
Что нового в server rendering?
До Redux
После Redux
index.html
store.js
Какая ближайшая альтернатива Redux?
MobX
MobX
Simple, scalable state management
Спасибо за внимание!

Contenu connexe

Tendances

Tendances (19)

"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
Александр Белоцерковский
Александр БелоцерковскийАлександр Белоцерковский
Александр Белоцерковский
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
Сергей Орлов
Сергей ОрловСергей Орлов
Сергей Орлов
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"Никита Галкин "Testing in Node.js World"
Никита Галкин "Testing in Node.js World"
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула"Посмотрим на Акку-Джаву" Дмитрий Мантула
"Посмотрим на Акку-Джаву" Дмитрий Мантула
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev
 

En vedette

"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
MoscowJS
 
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Ontico
 

En vedette (10)

Using React/Redux to build a chat system.
Using React/Redux to build a chat system.Using React/Redux to build a chat system.
Using React/Redux to build a chat system.
 
Flux
FluxFlux
Flux
 
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18
 
Артем Тритяк, Lead Front-End developer в Electric Cloud
 Артем Тритяк, Lead Front-End developer в Electric Cloud Артем Тритяк, Lead Front-End developer в Electric Cloud
Артем Тритяк, Lead Front-End developer в Electric Cloud
 
About Flux
About FluxAbout Flux
About Flux
 
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
 
Flux architecture
Flux architectureFlux architecture
Flux architecture
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработке
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 

Similaire à React + Redux. Опыт использования

Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
Alexander Feschenko
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Andrey Akulov
 

Similaire à React + Redux. Опыт использования (20)

WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
 
Как я перестал беспокоиться и полюбил Redux
Как я перестал беспокоиться и полюбил ReduxКак я перестал беспокоиться и полюбил Redux
Как я перестал беспокоиться и полюбил Redux
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.js
 
Введение в redux
Введение в reduxВведение в redux
Введение в redux
 
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
ReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеляReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеля
 
Оптимизация react+redux приложений | Odessa Frontend Meetup #7
Оптимизация react+redux приложений | Odessa Frontend Meetup #7Оптимизация react+redux приложений | Odessa Frontend Meetup #7
Оптимизация react+redux приложений | Odessa Frontend Meetup #7
 
Docker in Production with AWS ECS
Docker in Production with AWS ECSDocker in Production with AWS ECS
Docker in Production with AWS ECS
 
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
React новая эра фронтенд разработки / Роберт Харитонов (Liberty Global)
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
 
Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 

Plus de GDG Odessa (9)

Rx android
Rx androidRx android
Rx android
 
Kotlin
KotlinKotlin
Kotlin
 
Clean architecture on Android
Clean architecture on AndroidClean architecture on Android
Clean architecture on Android
 
BDSM or start programming after Angular one
BDSM or start programming after Angular oneBDSM or start programming after Angular one
BDSM or start programming after Angular one
 
Angular 2 vs Angular 1
Angular 2 vs Angular 1Angular 2 vs Angular 1
Angular 2 vs Angular 1
 
Release Engineering
Release EngineeringRelease Engineering
Release Engineering
 
Angular 1.x in action now
Angular 1.x in action nowAngular 1.x in action now
Angular 1.x in action now
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружу
 
Жизненный цикл React приложений
Жизненный цикл React приложенийЖизненный цикл React приложений
Жизненный цикл React приложений
 

React + Redux. Опыт использования