zoukankan      html  css  js  c++  java
  • 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,必须返回一个全新的对象。

  • 相关阅读:
    Hibernate的一些操作
    工作心得
    放款流程
    关于C#事件的自我构想和学习
    委托之winForm窗口间传递数据
    C#中string[]数组和list<string>泛型的相互转换 【转】
    关于注册界面中的一些规则设计时要注意
    系统界面设计---风格
    关于系统注册,做卡号重校验
    关于系统设计中的硬件开发
  • 原文地址:https://www.cnblogs.com/leyan/p/6424616.html
Copyright © 2011-2022 走看看