Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
Redux的简单概念介绍
16-08-10
banq
Redux是遵循只存储应用的真相单一来源的原则设计的,如果你了解后端EventSourcing原理,应该知道两者都是遵循这一原则设计的,对于Redux每个动作激活一个reducer,reducer产生新的状态并保存。如下图:
在Redux中, 每个应用状态都保存在全局状态,这个全局状态是不可变的,能够由View Provider通过逻辑访问,当用户触发一个交互,比如鼠标点按,这将触发一个动作Action到系统,这是通过使用一个被传递给View Provider回调函数实现的,这个动作action将被Redux的存储获取, 通过其中间件触发一系列转换,最后传递给一系列有前后顺序的reducer,通过reducer修改全局状态。
Redux核心概念是:
存储store,
action动作
修改状态的reducer函数
前面两个比较容易理解,我们看看reducer函数:
reducer是一个用于状态切换的纯函数,能够获得当前状态和当前动作action作为其输入,输出则是下一个状态,很重要概念是reducer是纯函数,没有副作用,每次你提供同样输入,你总是获得同样的输出。
如果只有一个reducer是不可能针对每个动作action管理整个状态切换的,而是通过多个reducer以及相互组合实现这点的。每个action对应一个reducer,同时还有一个组合reducer管理这些子reducer:当一个action进来时,组合reducer首先获取这个动作然后传递这个动作给每个小的子reducer函数,每个小的子reducer函数会检查这个动作,决定是否修改对应的应用状态中的一部分,如果修改了,就是产生新状态。
reactjs前端框架
redux
flux