redux作为一个有用的架构,在react中并不是非用不可,我们可以根据项目数据的复杂程度来决定是否使用redux。
如果说你的组件中有许多的互动,与服务器之间存在着大量的交互,或者你在某个组件的数据变化需要直接地去影响到其他组件的状态,这样的情况你就可以使用redux来讲数据统一管理,进而使得数据一变所有组件内相应的状态也随着改变,这就是redux的优点。
下面我们来介绍redux的基本用法。
-
首先我们需要搭建脚手架,新建一个项目,然后安装依赖npm i redux --save
-
当我们建完项目,成功安装完依赖后,在我们的项目内新建一个store文件夹,在store内新建一个index.js
-
在index.js内引入createStore,并且设置初始数据initState
-
利用createStore工具,存放我们的数据,并且将它导出
在这里面的action参数是我们在组件中修改store数据时候传过来的动作和新数据(后面会提到),而无论最终我们如何去修改store的数据,我们需要返回的都必须是一个完整的store数据。 -
在需要调用store数据的组件内引入store文件
-
首先是store最常用的方法,store.getState(),这个方法是用于在组件中获取到redux内的数据,更多情况我们是在组件constructor()内调用这个方法来初始化数据
如同上述所言,我们通过store.getState().list就可以拿到store内的list这个数组。 -
store.dispatch(动作),这个方法是用来修改store仓库内的数据,当我们调用这个方法时候我们需要传动作过去,所谓的动作,我们可以理解为是一个特殊的标记,当我们把这个标记传过去时候,store里面就可以通过action来获取到它,从而执行我们需要的操作。
这是组件内的index.js文件
这是store内的index.js文件
从上面的内容我们可以看到,action是一定含有type的一个对象,还可以接受其他的一些参数,我们通过调用store.dispatch()传过来的type=A,从而判断需要执行action.type为A的操作。而我们通过{…state,…action},来将store.dispath()传过来的list数组覆盖掉store内本来的list数组,再将它返回,从而实现了对store内的数据进行修改。
上面就是本人对于redux最基本用法的理解,如有问题请指出。
NZ