react native 中的redux

一、使用redux 的条件:

  1、某个组件的状态,需要共享;

  2、某个状态需要在任何地方都可以拿到;

  3、一个组件需要改变全局状态;

  4、一个组件需要改变另一个组件的状态。

redux   说明白点,其实就是一种机制,可以在同一个地方查询状态、改变状态、传播状态的变化。

 

二、redux 中的store

   store  可以认为是一个保存数据的地方,可以看成一个容器。

  通过createStore  来生成store;

  通过store.getState() 拿到数据;

 

三、redux 中Action

    View 通过Action 来改变state,它会运送数据到store。Action  是一个对象,其中type  属性是必须的,表示Action的名称。

 

四、redux 中的dispatch()

   store.dispatch ()是View 发出Action 的唯一方法。

     

五、reducer

     store 收到Action 以后,必须给出一个新的state,这样View 才会发生变化。这种state的计算过程就叫做reducer。

     reducer 是一个纯函数,它接受Action 和当前state作为参数,返回一个新的state。

   

const reducer = function (state, action) {
  // ...
  return new_state;
};

 

 

实际中的运用:

 

import { createStore } from 'redux';
const store = createStore(reducer);

  上面代码中,createStore  接受Reducer  作为参数,生成一个新的Store。以后每当store.dispatch 发送过来一个新的Action,就会自动调用reducer,得到新的state。

 

六、reducer  纯函数

      纯函数的一个特性就是:只要是同样的输入,必定得到同样的输出。

     纯函数是函数式编程的概念,必须遵守以下的一些约束:

    

1、不得改写参数;
2、不能调用系统I/O的API;
3、不能调用Date.now  或者Math.random ()等不纯的方法,因为每次会得到不一样的结果

     reducer 函数里面不能改变state,必须返回一个全新的对象。

 

posted @ 2017-02-21 16:08  雪昀  阅读(181)  评论(0编辑  收藏  举报