action
本小节我们将了解到action的概念
1、什么是action
action翻译成中文也就是'行为',redux中的action也是行为,这个行为被数据化成一个有一个type字段来标识 JavaScript 普通对象,这个字段记录了用户行为的数据(当然也有服务器响应的数据),具体是怎样,我们通过下图来看。
我们可以看到,当我点击按钮的时候,一个action就产生了,这个action里面包含什么呢?
A.一定包含一个type字段来告诉redux我们要添加一个任务
B.一定包含一个内容字段(在后面我们给他取名为text,当然你可以使用其他什么名称)来记录我们添加了什么任务
2、action的概念
想必大家看完什么是action也对action有了一定概念,通俗一点来说,就是记录了用户行为数据(也有服务器响应的数据)的载体(对象),他和普通js对象唯一不同的一点就是,一定要有一个type字段来告诉redux我们的action类型(是要添加任务,还是记录完成任务...)
注意: action是 store 数据的唯一来源
3、action定义
看到上面标红的大字,咋们就知道,对待action,不能马虎,作为唯一的数据来源,原则很重要。
A.必须强调action是一个JavaScript对象.
B.action内有一个type字段
C.action通常被定义为字符串常量
D.应该尽量减少在 action 中传递的数据,例如
//传递整个todos
{
type: COMPLETE_TODO,
todos:[]
}
//传递索引
{
type: COMPLETE_TODO,
index: 5
}
4、设计todo所需action
我们可以想想使用todo时能哪些行为呢?
一、如上图所说的添加任务
二、标记完成任务
三、选择要显示的任务
var actionAddTodo = {
type:'ADD_TODO',
text:'吃饭'
};
var actionCompleteTodo = {
type:'COMPLETE_TODO',
index:2
};
var actionSelectFilter = {
type:'SETFILTER',
filter:'SHOW_ALL'
};
在代码框中中完成actionSelectFilter的设计