Action接口声明
export interface Action<T = any> {
type: T
}
- 一个action是一个简单对象,它代表改变动作的意图
- Actions 是将数据导入store的唯一途径. 任何数据,无论是来自UI事件、网络回调还是其他源,例如WebSockets,最终都需要作为action发出
- Actions必须要有一个type字段, 该字段代表要执行的操作的类型,Types可以作为常量声明或者从其他模块导入
- 最好使用字符串来代表type,而不是使用Symbols,因为字符串是可以序列化的
- 除了type外, action对象的结构实际上取决于你
AnyAction接口声明
```javascript export interface AnyAction extends Action { // 允许在action中定义任何额外属性
}
- 接受任何其他属性的action类型,主要用于“Reducer”类型
<a name="WjcV2"></a>
### ActionCreator接口声明
```javascript
export interface ActionCreatorsMapObject<A = any, P extends any[] = any[]> {
[key: string]: ActionCreator<A, P>
}
- action creator就是创建action的函数
- action是信息的有效载荷,action creator是创建action的工厂
- 调用一次action creator只会生成一个action,但是不会触发(dispatch)它.你需要调用store的dispatch方法来真正触发改变
- 如果一个action creator需要读取当前的状态, 执行API调用或者引起副作用,就像一个路由转换.它需要返回一个异步action而不是一个action