Redux is all about actions
ActionCreator
Action
Middleware
Reducer
action 只是一个 javascript object
只是发起action的主体是不同的
1。 可以从使用者操作发起
2。 或是middleware发起
二个不同的地方发起
action分成三类
- Command actions
- Event actions
- Document actions
Command actions
command action可以当成api call to the server
command action 永远不会进到reducer
command action 通常用动词
GET FIND REMOVE FETCH
const FETCH_BOOKS={
type: 'FETCH_BOOKS',
payload: {
query: 'redux',
},
meta: {
timeout: 3000
}
}
Event actions
event action 用来通知发生变动
event action 只被middleware处理
const API_REQUEST_PENDING={
type: 'API_REQUEST_PENDING',
}
const ROUTING_STARTED = {
type:'ROUTING_STARTED',
payload:{
userId:'123456'
},
meta:{
from:'/home',
to:'/dashboard'
}
}
Document actions
document action是拿来放资料的,淮备用来存到state去的
document action只被reducer处理
const SET_BOOK={
type: 'SET_BOOK',
payload: [{...},{...}]
}
const UPDATE_BOOK={
type: 'UPDATE_BOOK',
payload: [{...},{...}]
}
const REMOVE_BOOK={
type: 'REMOVE_BOOK',
payload: 2545852
}
流程通常由command action 开始
烛发event 和其它 command actions
最后由document action结束
来完成一次流程
Action type | Intention | Dispatched by | Processed by |
---|---|---|---|
Command | start a procedure | UI middleware | middleware |
Event | Notify about change | Middleware | Middleware |
Document | Write data to state | Middleware | Reducer |