Top Banner
Новый взгляд на старые проблемы MoscowJS 18 29 января 2015 г. Сергей Прохоров 1
39

"Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Jul 16, 2015

Download

Software

MoscowJS
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Новый взгляд на старые проблемы

MoscowJS 18

29 января 2015 г.

Сергей Прохоров

1

Page 2: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

В активном поиске…

2

Page 3: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

AngularJS, Ember.js,..

Внутри все есть!

3

Page 4: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

● Сложные решения● Порог вхождения● Ограничения● Нужно уметь готовить

На выходе

4

Page 5: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Боль…

5

Page 6: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Ok. Backbone.js

Свобода!

Page 7: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Выбираем архитектуру

А можно всех посмотреть?

Page 8: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

MV*● MVC● MVP● MV[‘Здесь могла быть ваша реклама’]

8

Page 9: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Нужно больше боли!

9

Page 10: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Controller

Controller

Model View

Model View

View

/MV*./ instanceof 42

10

Page 11: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

11

Page 12: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Блок-схема Flux

12

Page 13: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Задачи React View● Отображение данных● Обработка польз. действий

13

Page 14: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

React View

… Купить …

14

Page 15: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

React View

… Купить …

15

Page 16: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

React View

… Купить …

16

Page 17: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Блок-схема Flux

17

Page 18: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Задачи Action Creator● Передача данных в Dispatcher● Запросы к API

18

Page 19: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Action Creator

19

Page 20: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Action Creator

20

Page 21: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Action Creator

21

Page 22: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Блок-схема Flux

22

Page 23: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Задачи Dispatcher● Передача данных в Store

23

Page 24: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Dispatcher

24

Page 25: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Dispatcher

25

Page 26: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Dispatcher

26

Page 27: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Блок-схема Flux

27

Page 28: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Задачи Store

28

● Информировать представления● Хранить состояние

Page 29: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Store

29

Page 30: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Store

30

Page 31: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Store

31

Page 32: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Store

32

Page 33: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Store

33

Page 34: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Синхронная работа Store

34

Page 35: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

● Однонаправленный поток данныхUnidirectional data flow

● Независимые хранилища данныхIndependent stores

● Отсутствие каскадных обновленийNo cascading actions

● Возможность синхронной обработки данныхSynchronous stores

Отличительные особенности

35

Page 36: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

● Простота и предсказуемость● Мало магии● Линейное масштабирование● Небольшое количество абстракций● Boilerplate

Profit?

36

Page 37: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

В зоопарке

37

● McFly — github.com/kenwheeler/mcfly● Reflux — github.com/spoike/refluxjs● Alt — github.com/goatslacker/alt● Delorean — deloreanjs.com● Marty.js — martyjs.org● Fluxxor — fluxxor.com● …

Page 38: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

СсылкиFlux — facebook.github.io/fluxGithub — github.com/facebook/flux

38

Page 39: "Flux — новый взгляд на старые проблемы" — Сергей Прохоров, MoscowJS 18

Вопросы?

Сергей Прохоровgithub.com/proxyfabiofacebook.com/proxyfabio

39