说说最难啃的redux到底是什么

redux

(redux不是必须学的,它只是一种代码管理架构,是一个专门用来做状态管理的js库,可能最近做的项目都比较肤浅,数据量也比较少,遇到这个redux反而会觉得让代码越来越复杂)

中文文档:http://www.redux.org.cn/

什么是redux

  1. 一个状态管理库,它可以管理状态;
  2. 它可以和vue、angular、react一起配合使用,不是react独有的;
  3. 作用:就是让多个组件共享状态;

什么情况下用redux

前面说到redux比较复杂,我也是硬着头皮看了两天,才慢慢理解,主要东西太多太杂了,很难记,到底什么时候需要redux呢,什么时候才能发挥它的优势:

  1. 有了redux,某个组件的状态,需要让其他组件随时拿到(共享)(对于那种多层组件都想用同一个状态的时候,用以前的方法就只能一个传一个,比较麻烦)
  2. 一个组件需要修改另外一个组件的状态;(之前的消息订阅与发布也可以达到这样的通信,但是容易出现信息泄露的问题)
  3. 总体原则:能不用就不用,如果不用比较吃力才考虑使用;

redux工作原理

这张图网上比较火,这里借用了一下:
在这里插入图片描述

从这个图其实可以看出来,React Components就是react中的多个组件,组件会对状态里的数据进行操作,这种操作我们可以定义成动作,这里Action Creater就是创建一个动作,包含本次动作的类型type,这次动作操作的数据data,Action Creater创建了这个动作后,不是靠自己执行的,需要交给其他人去执行,因此这里的dispatch就是分发给别人的函数,调用就是dispatch(action),从图中我们可以看到Action Creater把这个动作交给了StoreStore在这个图中有点像交警指挥者,Store直接移交给别人
(Reducers)Store只能有一个,但是Reducers可以有多个,它们执行移交过来的动作。

Store将动作交给Reducers时,移交了两个参数,一个是previousState,这个是动作操作之前的状态,第二个参数就是动作action,Reucers处理完之后会返回一个新的数据newState。

所以Store最终保存操作完的最新的数据,组件可以通过getState()方法从Store中读取最新的数据;

**注意:**Reducers这里还有一项工作,初始化状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李喵喵爱豆豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值