Что такое Изоморфный Javascript?
1. Исполняется в различных окружениях
2. Гарантирует одно поведение
3. Справляется с разностью окружений через абстракции
2. 1. Исполняется в различных окружениях
2. Гарантирует одно поведение
3. Справляется с разностью окружений
через абстракции
2Что такое Изоморфный
Javascript?
3. 3Что он нам дает?
1. Мы можем создать изоморфный Web UI
2. Поддерживает SEO
3. Работает как SPA
4. Единая языковая среда
5. Максимально переиспользуемый код
6. Прирост производительности на старте
4. 4Что он нам не дает?
1. Не работает с хранилищами, работает
как правило с RESTfull API
2. Чаще всего используется для Web UI
3. Не включает код для обеспечения
безопасности
5. 5
React — это JavaScript
библиотека, которая
используется для
создания
пользовательских
интерфейсов
15. 15Что же такое Flux?
Action
Dispatcher
Store
View API
Flux — это архитектура,
которую команда Facebook
использует при работе с
React. Это не фреймворк,
или библиотека, это новый
архитектурный подход,
который дополняет React
и принцип однонаправленного
потока данных.
17. 17Dispatcher / Диспетчер
Action
Dispatcher
Store
View API
В сущности, Диспетчер
— это менеджер всего
этого процесса. Это
центральный узел
вашего приложения.
Диспетчер получает
на вход действия
и рассылает эти
действия (и связанные
с ними данные)
зарегистрированным
обработчикам.
18. 18Stores / Хранилища
Action
Dispatcher
Store
View API
Хранилища в Flux управляют
состоянием определенных
частей предметной области
вашего приложения.
На более высоком уровне
это означает, что Хранилища
хранят данные, методы
получения этих данных
и зарегистрированные
в Диспетчере обработчики
Действий.
19. 19Controller Views / Представления
Action
Dispatcher
Store
View API
Представления — это всего
лишь React-компоненты,
которые подписаны
на событие «change»
и получают состояние
приложения из Хранилищ.
27. 27Проблема №1. Код хранилищ не может быть
перезагружен без обнуления состояния.
todos: [`eat`, `sleep`]
addTodo: function(todo) {
//add to back
}
todos: [ ]
addTodo: function(todo) {
//add to front
}
todos: [`eat`, `sleep`]
addTodo: function(todo) {
//add to back
}
todos: [`eat`, `sleep`]
addTodo: function(todo) {
//add to front
}
28. 28
Action 1
State
Action 2 Action 3 Action 1
State 2
Action 2 Action 3
State 2State 1
Проблема №2. Состояние перезаписывается при
каждом действии.
29. 29Проблема №3. Нет правильных “мест” для сторонних
плагинов.
Log
Store
Dispatcher
StoreStore
Log
Dispatch
Reducer
ReducerReducer
ReducerReducerReducerReducer