Upload
eatdog
View
390
Download
6
Embed Size (px)
Citation preview
Data flow layerЗахарченко Артем
Зачем мы делаем SPA?
1)Скорость отклика
2)Заимствование паттернов из десктоп мира
3)Перенос части логики на клиент
4)Рынок, требующий такие приложения
Networking
Rendering performance
Rendering performance
Rendering performance
Rendering performance
CSS Triggers
Вычисления
Вычисления
Вычисления
Вычисления
Garbage collection
Who cares about M?
js-data.io
Side effects
Data changing strategy1)Push/Pull Observer
2)Data binding (get/set)
3)Dirty checking
4)Immutable data structure
Чем же является приложение?
Принципы• Single source of truth
• State is read-only
• Change are made with pure functions
ReduxРазделение ответственности
• Отрисовка отображения
• Получение данных из action
• Изменения данных в reducer
Redux
Предполагаем, что ваши данные не будут мутировать
Что это значит?
Состояние иммутабельно
Action
Reducer
Store
Mutable vs ImmutableMutable
• Сравнения по значениям• Оптимизация платформ• Все знают как это
работает
Immutable• Сравнения по ссылке
• Дополнительные зависимости
• Падение производительности на маленьких объемах
• Надо обучать команду
Как итог1)Достаточно простой концепт2)Простые функции и объекты3)Последовательная работа с данными4)Это не только о React.js5)Отличная интеграция с любыми библиотеками
Behavior-Event-State-Tree (BEST)
BEST
BEST
BEST
MVI
Intent
Model
View
@Blackrabbit99