redux入门 互动版

action函数

本小节将介绍action函数,注意:action函数与action不同

1、创建对象的工厂模式

我们借用讲action的机会回顾js高程创建对象的工厂模式

function createAction(text){
  var o = new Object();
    o.type = ADD_TODO;
    o.text = text;
    return o;
}

工厂模式很好的解决了创建多个相似对象的问题

2、什么叫action函数

简单的说:action函数是指生成action的方法。

大家看下面的action函数,你会发现他不就是js创建对象模式里面的工厂模式吗?

function addTodo(text){
  return {
    type:'ADD_TODO',
    text
  }
}

3、为什么要用action函数

大家可能会想我们完全可以直接使用action啊,当然可以,action函数并不是必须的。

虽然我们可以直接使用Object构造,或者用对象字面量创建action,但是,这样做我们将会大量重复,我想谁都不会想让自己的代码又臭又长又难维护吧。

3、设计action函数

根据我们上一小节设计的action,我们可以造出三座工厂。

function addTodo(text){
  return {
    type:ADD_TODO,
    text
  }
}

function completeTodo(index){
  return {
    type:COMPELETE_TODO,
    index
  }
}

function selectFilter(filter){
  return {
    type:SETFILTER, 
    filter
  }
}
完成selectFilter的设计