什么是Redux
Redux可以理解为状态管理器,可以将状态(数据)存储在Redux中进行添加、删除和修改。例如:
从服务器上取一个收藏夹列表,可以用Redux管理检索到的列表数据。多个页面可以共享使用,不需要到处传递数据。
页面a已经改变了状态,应该通知页面b并采取相应的措施。
Redux是JS应用程序的可预测状态容器,这意味着结果是可预测的,每一个变化都会有一个确定的结果,就像函数式编程中相同的参数会返回相同的结果一样。
Redux的状态会存储在单个数据源中(存储在对象树中),读取和共享非常方便,不需要考虑出错。状态只能直接读取,不能直接修改。修改只能通过发送动作统一处理,方便分析事件,可以避免到处修改状态导致的争用情况。当统一处理状态时,使用纯函数(reducers中的函数)来修改状态。这些功能只是一个钩子。当状态树需要修改时,Redux会调用它。您可以编写不同的函数来处理不同动作对应的状态,或者重用一个函数来处理多个动作。
为什么要用它
简单地说,它使维护难以维护的数据变得容易。以一个小程序为例:多个页面共享一组数据,这些数据可以随时从网络上更新或增减(比如一个页面跳转的时候,就带着数据(非基础数据)。这时候如果用app中的全局变量进行临时存储,存储的变量会很多,以后维护起来会很麻烦,别人接手代码会很烦。),有一个地方数据发生了变化,其他地方得到通知可以使用Redux。如果没有遇到这些问题,说明你的项目还没有到这些复杂的阶段,所以暂时可以不考虑使用Redux。
Redux的四个组成部分
动作:动作是用来描述发生了什么的事件。例如,当用户单击刷新按钮时,将生成获取最新数据的事件。操作用于识别此事件。action是一个JS对象,有两个属性,一个类型和一个数据。类型用于表示动作的类型,数据是新的状态数据。因为它是一个对象,所以在处理状态时,它当然可以带来一些其他属性来使用。减速器:减速器是处理状态的功能。真正的状态数据处理是在这个函数中,Reducer接受两个参数,一个是修改前的状态对象,一个是动作。可以通过判断减速器中动作的类型属性来确定是什么事件,然后对状态进行相应的处理,返回一个新的状态。
Store:store是Redux的CPU和状态处理器,提供一些API给我们使用,比如:
GetState方法,可以得到最新的状态对象树。Subscribe方法用于订阅更新状态。它接受一个函数作为侦听器,并返回一个函数来取消订阅,这样我们就可以在不需要订阅时取消侦听器。
调度方法用于调度事件。它将一个动作作为参数,并发出事件。
状态:状态是存储的数据,数据将以对象树的结构进行管理。这里需要注意的是,Store每次传输给减速器的状态是整个state对象树中减速器名称(键)对应的子对象。
事件发出后,商店会发送一个reducer来处理事件,得到一个新的状态,然后通知每个监听器新的变化(观察者模式)。总的来说,Redux就像一个快递仓库,里面的货物是按地区存放的。每当有新的货物发出时,处理器或减速器会根据地点名称将其添加到仓库的相应位置,然后仓库会订阅快递员来提货。
1.首先,安装reduxJx。cnpm I-save ruux 2,创建一个store 3的js文件,使用import从' redux' 4引用redux import {createstore},然后创建一个全局管理数据对象const preload state={ cart list :[]} 5。处理全局数据的方法const reduce=function(state,action){//参数状态:最后状态state//参数action:事件描述对象console . log(action . type);数据处理方法if(item . a===0){ 0.code }//返回下一个全局使用的状态返回状态;}//create warehouse const store=create store(reducer,preload state);使用导出默认存储6和调度是在存储之外。store.dispatch()调用参数1:设置相对于存储中动作的类型值,参数2:传输的数据如下: store . dispatch({ type : ' add ',Value: {id: 2}})然后可以在存储中的动作中获取类型和传入值,或者在全局管理数据中更改状态中的全局数据。7.在组件(页面)中,还可以通过store获取自己存储的对应值。getState()。8.store.subscribe()的操作基本上是用来监控商店中的一些数据变化,调度的操作顺序主要是需要总结的
以上就是边肖介绍的redux.js的详细说明和基本用法,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你的!