redux.js详解及基本使用

  

  

& # 8203;,,,,,回来的我们可以把它理解成一个状态管理器,可以把状态(数据)存在的再现中,以便增,删,改,例如:

  

从服务器上取一个收藏列表,就可以把取回来的列表数据用回来的管理,多个页面共享使用,不用把数据传来传去。

  

页面改变了一个状态,B页面要收到通知,做相应的操作。

  

& # 8203;,,,,,,回来的是一个给JS应用使用的可预测的状态容器,也就是说结果是可预测的,每一次改动会有确定的结果,正如函数式编程思想里的相同的参数会返回相同的结果。
  

  

& # 8203;,,,,,,回来的的状态会存储在单一的数据源中(存储在对象树中),这样,读取和共享就非常方便,不必去考虑会取错。状态是只能直接读取的,不能直接修改,修改只能通过发送事件(行动)统一处理,这样便于分析事件,也可以避免随处修改状态造成竞态条件。统一处理状态时用纯函数(还原剂中的函数)来修改状态,这些函数只是一个勾子,当需要修改状态树时回来的会来调用,你可以编写不同的函数来处理不同的行动对应的状态,或者复用一个函数来处理多种行动。

  

  

& # 8203;,,,,,,,简单来说就是使不易维护的数据变得维护简单,以小程序举例:多个页面要共享一套数据,而且这些数据是随时可能从网络上获取更新或增减的(如页面跳转时要带数据过去(非基本类型的数据),这时如果用应用程序中的全局变量来暂存,存的变量多了,以后维护是个大麻烦,别人接手代码也会很烦恼。),还有一个地方的数据有改变,其他地方要收到通知等这些场景就可以使用回来的来做,如果你没有遇到这些问题,说明你的项目还没有到这些复杂的阶段,可以暂不考虑用回来的。

  

<强>回来的的四个部件

  

 redux.js详解及基本使用“> </p>
  <p>行动:行动是一个事件,用来描述发生了什么事,例如用户点击了一个刷新按钮,就会产生一个获取最新数据的事件,行动就是用来标识这个事件的,行动是一个JS对象,拥有2个属性,一个类型,一个数据类型用来表示该行动的类型,数据为新的状态数据,既然是对象当然还可以带上一些其他的属性,在处理状态的时候使用。<br/>
  减速机:减速器是一个处理状态的函数,真正的状态数据处理就是在这个函数里,异径管接受两个参数,一个是修改前的状态(国家)对象,一个是行动。可以在减速器中判断操作的类型属性来确定是一个什么事件然后对国家做相应的处理,并返回新的状态。</p>
  <p>存储:存储是回来的的CPU、状态处理器,它提供了一些api给我们使用,如:</p>
  <p> getState方法,可以获取到最新的状态对象树。<br/>
  订阅方法用来订阅状态的更新,该方法接受一个函数做为监听器,并会返回一个注销订阅的函数,以便我们在不需要订阅时注销改监听器。<br/>
  </p>
  <p>派遣方法用来分发事件,它接受一个行动作参数,把事件发出去。</p>
  <p>状态:状态是存储的数据,数据会以对象树的结构来管理,这里要注意,商店每次传给减速机的状态是整个州对象树中对应该减速器名字(键)的子对象。<br/>
  </p>
  <p> & # 8203;,,,,,,,事件发出后商店会派减速器去处理事件,得到新的状态,然后通知给各个监听器有新的变化(观察者模式)。<br/>
  总体来说回来的就像是一个快递仓库(商店),里面的货物(状态)按地域分别存储,每当有一个新的货物进来(调度),处理程序或人员(减速器)就会去按地名(类型)添加到仓库对应的位置,然后仓库通知(订阅)快递员来取货物。</p>
  
  <pre类=   1,先是安装reduxJx, cnpm我——拯救rudux   2、创建一个店的js文件   3、使用进口来引用回来的进口{createStore} '回来的'   4,然后在商店创建一个全局管理数据对象         const preloadState={   cartList: []   }   5,处理全局数据的方法   const减速器=函数(状态、动作){//参数状态:上一次的状态状态//参数行动:事件描述对象   console.log (action.type);   处理数据方法   如果项目。===0){   …代码   }//返回下一次全局使用的状态状态   返回状态;   }//创建仓库   常量存储=createStore(减速机、preloadState);   出口默认存储   6日派遣的使用   在商店以外store.dispatch()调用参数1:设置商店里面的行动相对的类型值,参数2:传递的数据   如下:   store.dispatch ({   类型:“添加”,   价值:{   id: 2   }   })   然后在商店里面的行动里面可以获取到类型和传入值的值,也可以在全局管理数据中的状态改变全局的数据   7,在组件(页面)中也可以通过商店。getState()来获取你存储的相对应的值,   8,store.subscribe()的操作是基本用来监听商店里面的一些数据变化进行操作的,需要主要的是派遣的操作顺序,

redux.js详解及基本使用