React for Universal Apps,
next step for JS to Server-side
Roman Iakobchuk
Для бізнесу кожен клік - втрата частини клієнтів
SPA vs Classic
('Currently, the set of Ember applications supported is extremely limited')
React.renderToString(<App {...initialState} />)
React.render(<App {...initialState} />, container)
frameworks-friendly
React-way
State
UI
Pure Function
Казковий світ ФП
0. Функції - first-class citizens
1. Чисті функції
2. Іммутабельні данні
Звична
Event-driven
Architecture
FRP
Architecture
function increment(amount) {
return {
type: INCREMENT,
data: {amount}
}
}
function counter(number = 0, action) {
const {type, data} = action
return type == INCREMENT ? number + data.amount : number
}
Current State
Final State
New State
Action
New State
Action
Action
function pow(n, p) {
let i = 0,
res = 1;
for (;i < p; i++) {
res *= n
}
return res;
}
function pow(n, p) {
return p == 0 ? 1 :
n * pow(n, p -1)
}
function pow(n, p, acc = 1) {
return p == 0 ? acc :
pow(n, p - 1, acc * n)
}
Action Creator
Middlewares
Reducers
Store
UI
dispatch
Side-effects
Skype: r.iakobchuk
Email: r.iakobchuk@gmail.com