redux简单实用实例

公司今年下半年的项目用到了react作为技术栈,在使用的过程中我发现它本身学习并不难,难得是当一个项目复杂的时候,只是单纯的父子组件通信并不是很便捷,所以我在项目中引入了redux模块,然后一直没时间进行一个归纳,所以今天就特意做了一个demo,用来小小的总结一下,以后学习起来,也有东西可以翻阅。

首先说下什么是redux

官方的解释是redux是js应用的可预测状态的容器,可以理解为全局数据状态管理工具,通常我们需要坐组件通信的时候会需要用到,如果只是简单的父组件往子组件传值可使用props进行传值,但如果想要数据共享或者复杂的通信,可借助redux

1:首先创建react实例

2:my-app应用创建以后,安装redux

npm install redux react-redux --save

3:在src目录下创建action跟reducers,store三个目录,在action目录下创建num.js文件,action主要用来描述某个行为,比如,本文中会有加减乘除等行为,store中的state数据只能通过action来改变,下图是本文中自定义的action,可以看出我们一共定义了加减乘除四种行为,分别对应四种方法,这四种方法又有自己各自的type

 4:reducers文件夹下创建add.js,如果说action是用来描述某个行为的话,那reducer就是针对某种行为来进行具体的操作的,操作的对象是state,而判断是某种行为的标准就是action的type值,针对不同的type来做出不同的处理

一般情况下我们不止会有一个reducer文件,比如我们还希望对别的数据进行共享,不是按钮的加减乘除,那我们就需要有别的actions,reducers,那如果有多个reducer文件该怎么办呢,那我们可以在reducers文件夹下再创建一个index.js文件,将多个reducer文件合并成一个文件再进行输出,主要用到的是redux中的combineReducers

5:目前而言,action跟reducer已经准备完毕,下面就是生成store,在上面说的store文件夹下创建index.js,在该文件里就是把redux模块下的createStore引入,把输出总的reducer文件引入,最后通过createStore生成store,参数就是前面生成的总的reducer,然后暴露store,供给组件使用

6:一切准备完毕,开始使用,在index.js中引入store,provider,其中provider是react-redux提供的一个组件,它的作用是将store提供给其子组件,如下图,其子组件App就可以拿到store

7:在组件中如何使用呢,首先在这里需要引入想要用的action,最终我们需要通过getdispatch某个action来改变某个state,gemapStateToProps和mapDispatchToProps主要就是将state跟dispatch都跟当前组件的props关联,供组件使用,但是这两个方法的名称不是固定的,分别对应本文中的getstate,getdispatch,然后getstate可以拿到你想要的state,gedispatch就是用来dispatch一个action,来达到最终的目的

8:界面截图

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值