而且他的 API 很少,核心只有 createStore 的 150 行程式碼
只是個普通的 js object
{
type: SEND_MESSAGE,
payload: {
text: 'Hello world'
}
}
Flux Standard Action 有一個普遍的 action 定義,
包括 meta, error 等欄位
通常寫在 Actions 或 ActionCreators 命名的檔案中
小心盡量不要跟 Action 搞混
使用 thunkMiddleware, PromiseMiddleware 後,
就可以延伸的 ActionCreator 的功能,
這邊先不做敘述
給 store 初始的 state,並根據收到的 action 回傳新的 state
就像是原本的 store 的一部分工作
(previousState, action) => newState
每次收到 dispatch 的 action 就會觸發,根據原本的 previousState,來回傳新的 newState
這樣的 functional 的做法,可以更簡潔的表達如何變更 state
在一開始的時候 Redux 會先
dispatch 一個@@redux/INIT
action 來初始化 state,@@namespace/EVENT_NAME
是
目前 private event 的命名規範,
不要試圖去聽這些 event
應用程式保存 state 的地方,Redux 只有一個
用來延伸 dispatch 的功能
dispatch => dispatch'
讓 dispatch 經過一個個的 middleware decorate
const store =
applyMiddleware(promise, thunk, observable)(createStore)(reducer);
// store.dispatch => promise(thunk(observable(store.dispatch)));
Redux 本身並不依賴特定 view layer,
所以可以跟任何 view layer 去結合
react-redux 就是 react 跟 redux 的介接
他提供兩個 component:
還有對應的 decorator:
不過...
Provider
connect
bindActionCreators
Redux 還有一個可以方便去使用 ActionCreator 的 util
Thanks for listening